Parallel For-Each Mule 4.2.2 - parallel-processing

I am getting the below errors in the application running in production.
"org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain - Unexpected state. Error handler should be invoked with either an Event instance or a MessagingException
java.util.ConcurrentModificationException: null"
I am seeing this error while the app is running inside the parallel foreach invoking services.
Any idea when we would this kinda exception happens

It looks like it could be caused by one of the issues fixed in Mule 4.3.0. Try to test with 4.3.0 to see if the issue goes away.

Related

Spring batch - stop job running in different JRE

Background:
I created a Stop Job which finds running jobs with the specified name as this:
jobExplorer.findRunningJobExecutions("job_A")
and then, for each execution of job_A it calls:
jobOperator.stop(execution.getId());
Issue
when i call the above stop() method; even though it eventually accomplishes what i want, but it still throws an exception:
WARN o.s.b.c.l.s.SimpleJobOperator [main] Cannot find Job object
org.springframework.batch.core.launch.NoSuchJobException: No job configuration with the name [job_A] was registered
at org.springframework.batch.core.configuration.support.MapJobRegistry.getJob(MapJobRegistry.java:66) ~[spring-batch-core-3.0.6.RELEASE.jar:3.0.6.RELEASE]
at org.springframework.batch.core.launch.support.SimpleJobOperator.stop(SimpleJobOperator.java:403) [spring-batch-core-3.0.6.RELEASE.jar:3.0.6.RELEASE]
The Cause
This happens when the stop() method tries to located job_A in the JobRegistry.
So even though job_A was found in the "JobRepository" because the repository looks in the database, it was not found in the "JobRegistry" which is a local cache of job beans created within its runtime environment, since job_A is running withing a different runtime instance it was not registered and threw and error.
Concern
Even though job 'A' stops i am still concerned what i have missed because of the exception.
I have searched this issue and found only general answers on how to stop a job, however i did not find anyone explaining how to stop a running job of another runtime.
Any answers would be greatly appreciated.
The JobOperator isn't intended to orchestrate distributed batch environments like you're attempting to do. You really have two options:
Use the JobRepository directly - The part that causes the job to stop successfully in the remote JVM is that the JobRepository is updated and the running job in the other JVM knows to check that periodically. Instead of using the JobOperator to accomplish this, just use the JobRepository directly to make the update.
Use a more robust orchestration tool like Spring Cloud Data Flow - This kind of orchestration (deploying, starting, stopping, etc) for jobs (via Spring Cloud Task) is what Spring Cloud Data Flow is for.
You can read more about Spring Cloud Data Flow at the website: https://cloud.spring.io/spring-cloud-dataflow/
In addition to what Michael mentioned you can solve this by adding some interface to the application allowing you to pass commands to start or stop your job. Something like a webservice. Exposing an end-point to stop it. Now the catch in this case is handling in clustered system may be a bit tricky.

Grails and Spring Security CAS plugin

I am currently having an issue where when I try to start my app I get the error:
ERROR context.GrailsContextLoader - Error initializing the application: Cannot execute
null+null
Message: Cannot execute null+null
This only happens when I tell the program to compile the Spring Security CAS plugin. This only started happening when I turned off forking, since it was making it hard to set up a JNDI. Is there a way to fix this problem without turning back on forking?
It turns out that the reason it wasn't working was because I hadn't finished configuring it. This doesn't make much sense to me, given that I was able to run the app just fine before without configuring it, seeing as how I never used that plugin within the implementation, it was just downloaded.

SOAPElementImpl has not setTextContent method

Strange error in weblogic 10.3.3:
I'm running a SpringIntegration system on weblogic 10.3.3. My problem is that my Node gets the type weblogic.xml.saaj.SOAPElementImpl under runtime and that the method setTextContent fails with "UNIMPLEMENTED" when I run my services from SOAPUi. I added this to the startWeblogic.cmd file to get it to run with apache implementation instead of weblogic but doesn't seem to help:
set JAVA_OPTIONS=-Djavax.xml.soap.SOAPConnectionFactory=org.apache.axis.soap.SOAPConnectionImpl -Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl -Djavax.xml.soap.SOAPFactory=org.apache.axis.soap.SOAPFactoryImpl
Anyone experienced this?
I changed my implementation from SOAPElement.setTextContent() to SOAPElement.setValue(). That seems to have done the trick.

Exception sending context initialized

When i am running my application it give me this exception:-
Exception sending context initialized event to listener instance of class
org.springframework.web.util.Log4jConfigListener
java.lang.ExceptionInInitializerError
But this problem is not permanent. If i remove the log4j entries from web.xml and restart p.c and then again add log4j entries and start the server, then the application works fine.
I noticed that when the application is deployed and when i undeploy and again deploy the same application, this problem emerge.
Please help me ........ i am facing this problem from 3 months...
I just investigated it a little and have found the similar issue:
It causes when multiple jar file for log4j is available to application.
From web/application server and from build path(Included from other
path rather than web/application server)
You can see the entire thread here:
http://www.coderanch.com/t/551933/Spring/Exception-sending-context-initialized-event
looks like this is your problem.

SpringIDE 2.6.0 failing to initialize with error under Helios

I'm running into an issue with the Spring IDE release 2.6.0 under Eclipse 3.6 SR 1
Error occured processing XML 'Could not instantiate bean class
[org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ToolingFriendlyBeanDefinitionDocumentReader]:
Constructor threw exception; nested exception is
org.apache.commons.logging.LogConfigurationException: User-specified log class
'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.'.
See Error Log for more details
I dumped my entire eclipse environment and re-installed to see if it would fix it and it didn't. Not sure if this is a classpath problem or something specifically related to the SpringIDE configuration.
Any help would be appreciated.
you're hitting a bug in Spring IDE. See the following JIRA for more details:
https://issuetracker.springsource.com/browse/STS-1691
We are going to publish a patch for this issue soon. Check the JIRA for when it is available. Alternatively install an upcoming nightly build.
Regards, Christian

Resources