Hi,

Currently we are upgrading our environment from Fuse 6.1 to Fuse 6.2. We are
using camel-jt400 to communicate to an IBM AS/400 mainframe.

Currently we are having trouble to read from a data queue on the AS/400, and
I think the problem is camel related.

In Fuse 6.1 we use camel-jt400-2.12.0-redhat-610379.
In Fuse 6.2 we use camel-jt400-2.15.1-redhat-621084.

The problem is that in Fuse 6.2 no DefaultScheduledPollConsumer is started
because the createConsumer method is overridden in the Jt400Endpoint (which
extends DefaultPollingEndpoint):

@Override
public Consumer createConsumer(Processor processor) throws Exception {
    if (Jt400Type.DTAQ == configuration.getType()) {
        return new Jt400DataQueueConsumer(this);
    } else {
        throw new OperationNotSupportedException();
    }
}

Because of this, the createConsumer from the DefaultPollingEndpoint is never
invoked, and hence no DefaultScheduledPollConsumer is created. The effect is
that no polling takes place on the AS/400 queue.

In Fuse 6.1 this method was not overridden (in class
Jt400DataQueueEndpoint), and therefore the createConsumer method from the
DefaultPollingEndpoint was invoked. Resulting in a
DefaultScheduledPollConsumer.

I think the fix is simple: invoking super.createConsumer(processor) from the
createConsumer method in Jt400Endpoint.

Can you please have a look at this, and tell me whether I am right. If so,
we have to make a workaround for now.





--
View this message in context: 
http://camel.465427.n5.nabble.com/Problem-with-JT400-DataQueue-tp5784876.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to