[ 
https://issues.apache.org/jira/browse/AXIS2-5670?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14137672#comment-14137672
 ] 

Rohit commented on AXIS2-5670:
------------------------------

Hi,

I realized, That i was pooling 2 workers (Version Service and MyNewServices 
worker) on same Queue. Hence i creates seperate queue for each services and 
binded settings in settings services.xml. Things seems to be working ok. I had 
to do few code changes. as below for successful execution of JMS IBM MQ 
Transport.

a.      Code Change in axis2-transport-base-1.0.0-sources
i.      org.apache.axis2.transport.base. AbstractTransportListener
Error : Compilation Error.
Comment Line 280 
//msgCtx.setProperty(MessageContext.TRANSPORT_NON_BLOCKING, 
Boolean.valueOf(!isNonBlocking));
Reason for comment : Constant TRANSPORT_NON_BLOCKING is not available in 
MessageContext.java for Axis2_1.6.2 also there is not reference for 
isNonBlocking

b.      Code change axis2-transport-jms-1.0.0-sources

i.      org.apache.axis2.transport.jms. JMSOutTransportInfo
Error : Cast error for QueueConnection with ibm’s connection object. 
JMSConnectionHandle
Reason for comment : In case if JMS Connection factory is fetched from 
Application Server Initial Context.Reason being, Connection object returned by 
server has different Implementation Object and is factory object  which is not 
always compatible to javax.jms.QueueConnection object. Alternate would be to 
create a connection factory object explicitly. Keeping it enabled since it is 
base code of Axis. Instead i have handled ClassCastExpception and in 
ClassCastExpception case explicit object will be created.

 if (connection != null) {
            if (destType == JMSConstants.QUEUE) {
                /*Rohit Jadhav Starts*/ 
                try
                {
                        session = ((QueueConnection) 
connection).createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
                        producer = ((QueueSession) 
session).createSender((Queue) destination);
                        
                }
                catch(ClassCastException classCastException)
                {
                        try
                        {
                                queueManagerName = 
(String)jmsConnectionFactory.getContext().getEnvironment().get(JMSConstants.PARAM_CONFAC_JNDI_NAME);
                                if(null!=queueManagerName)
                                {
                                        qConFac = 
(QueueConnectionFactory)jmsConnectionFactory.getContext().lookup(queueManagerName);
                                        session  = 
qConFac.createQueueConnection().createQueueSession(true, 
Session.AUTO_ACKNOWLEDGE);
                                producer = ((QueueSession) 
session).createSender((Queue) destination);
                                }
                        
                        }
                        catch(Exception e)
                        {
                                e.printStackTrace();
                                handleException("Failed to look up connection 
factory from JNDI", e);
                        }
                }
                /*Rohit Jadhav Ends*/
            } 
 
ii.     org.apache.axis2.transport.jms. ServiceTaskManager

Error : javax.jms.IllegalStateException: Method setExceptionListener not 
permitted
Comment code on line 798, Issue already raised in axis
  //connection.setExceptionListener(this); 
https://issues.apache.org/jira/browse/AXIS2-5528



> Axis2 1.6.2
> -----------
>
>                 Key: AXIS2-5670
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5670
>             Project: Axis2
>          Issue Type: Bug
>         Environment: IBM MQ, Axis2 1.6.2
>            Reporter: Rohit
>            Priority: Critical
>
> Hi,
> I have enabled IBM MQ Communication from Axis2 1.6.2, I have added 1 new 
> webservice along with default web service Version of Axis2. While startup i 
> can see couple of JMSWorkers gets registered i.e JMSWorker1 for Version and 
> JMSWorker2 for my new webservice. When i am pushing message from SOAUP UI via 
> Hermes on to IBM Request Q. for new web service. Threadpool randomly 
> allocating the request to axis worker. i.e. If request is picked up by 
> JMSWorker1 which is meant for Version services. I get error. If request gets 
> picked up bu JMSWorker2 i.e. My newly added webservice worker then execution 
> happens properly. I think its a bug. Please correct me if i am wrong.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to