« Return to Thread: [MULE 2] Work caused exception on 'workCompleted'

[MULE 2] Work caused exception on 'workCompleted'

by Enrique Rodríguez :: Rate this Message:

Reply to Author | View in Thread

Hi, I need help from a Mule core developer to overcome this problem.
I'm using Mule 2.0.2 on Linux, and after a few days it starts logging this error:

Work caused exception on 'workCompleted'. Work being executed was: org.mule.transport.AbstractMessageDispatcher$Worker@1abe3a

It happens on org.mule.transport.vm.VMConnector logger, and after a bit of research, I found it really happens on class
org.mule.transport.AbstractConnector, method handleWorkException(WorkEvent, String), in line 1746, in which the error is logged.

It seems that the event has an exception (event.getException != null). Oddly, the exception never gets logged, just this messge.

After this scenario is set, all VMConnectors, one by one, starts refusing requests. If I restats Mule, it works fine for a few days or so.
In addition, the thread executing the method is named vmQueue.dispatcher.1502. Looks like Mule starts creating threads. Before this scenario, I have 10 vmQueue.dispatcher threads.

Despite the name, I'm not using queued vm connector.

I saw that others has this problem too, but didn't saw solutions. Has anyone solved it, o work-around it?

Thanks in advance,
Q.-

My vmConnector config:

<vm:connector name="vmQueue" queueEvents="false">
    <receiver-threading-profile doThreading="true"
                                         maxThreadsActive= "250"
                                         maxThreadsIdle= "250"
                                         poolExhaustedAction="WAIT"
                                         maxBufferSize="100"
                                         threadWaitTimeout="240000"/>
    <dispatcher-threading-profile doThreading="true"
                                         maxThreadsActive= "10"
                                         maxThreadsIdle= "10"
                                         poolExhaustedAction="WAIT"
                                         maxBufferSize="100"
                                         threadWaitTimeout="240000"/>
    <vm:queueProfile maxOutstandingMessages="100"/>
</vm:connector>



class AbstractConnector:

    protected void handleWorkException(WorkEvent event, String type)
    {
        if (event == null)
        {
            return;
        }

        Throwable e = event.getException();

        if (e == null)
        {
            return;
        }

        if (e.getCause() != null)
        {
            e = e.getCause();
        }

        logger.error("Work caused exception on '" + type + "'. Work being executed was: "
                        + event.getWork().toString());

        if (e instanceof Exception)
        {
            this.handleException((Exception) e);
        }
        else
        {
            throw new MuleRuntimeException(CoreMessages.connectorCausedError(this.getName()), e);
        }
    }

 « Return to Thread: [MULE 2] Work caused exception on 'workCompleted'