Integration Sap PI - JCAPS through JMS queue problem

Hi to all,
we have to send data through Sap PI 7.1 to an application server Sun Seebeyond JCAPS via JNDI JMS.
We created a Simple Java Test Class that sends data to Jcaps Queues using stcms libraries suggested from Sun.
I already tested this code on Eclipse, and it works fine. (Jcaps receive correctly messages sent from Java Class)
Using JMS Communication Channel on Sap PI with same settings used on Java Class (Queue Connection Factory, Initial Context Factory, URL, Queue Name) and deployed the same stcms libraries on PI,
Jcaps doesn't receive any message. In ABAP Monitor and Communication Channel Monitor we don't check any error: infact in CC Monitor a "Succesfully Connected to Queue" is displayed.
During our tests on Java Class, we tried to change CreateQueueSession istruction ( qsession = qcon.createQueueSession( false, javax.jms.Session.CLIENT_ACKNOWLEDGE ));
we checked that any other setting (changing parameters required from Java Method), different from setting just exposed,
messages are not received from Jcaps and we don't have any error during sending operation (like happens in Sap PI).
So correct setting to send message to JCAPS are:
Transacted = False;
acknowledgeMode = CLIENT_ACKNOWLEDGE;
How we can set this parameter in JMS Communication Channel on Sap PI?
If the CC configuration is correct, where we can find the problem and what kind of issue could be? On client side (Sap PI) or on Server side (JCAPS)?
Thanks

In order to set Transacted = false, uncheck "Transactional JMS Session" in the Processing Tab of JMS adapter. Keep in mind that the message delivery is NOT guaranteed in such a scenario. It is recommended to use transactional sessions in JMS scenarios.
The JMS sessions created by JMS adapter are of type "AUTO_ACKNOWLEDGE".
Regards,
TK
Edited by: Sameej T.K. on Oct 20, 2010 10:47 PM

Similar Messages

  • OSB 10.3 JMS queue problem: JMSCorrelationID is null

    Hi everybody,
    I am new to OSB/ALSB, and need some help regarding JMS message handling. I am trying to put some input data into a JMS queue( say, reqQueue) and to get the response from another JMS queue(say resQueue). My architecture is:
    OSB proxy service->OSB business service->JMS queue(reqQueue)->BPEL process(through JMS adapter) ->JMS queue(resQueue)->OSB business service->OSB proxy service.
    I have used JMSCorrelationID for response correlation. but my problem is that when I am trying to test the service from proxy service, I am getting the JMSCorrelationId as null in BPEL process as well as in the weblogic server JMS log, and as I am getting the CorrelationId as null, I am unable to correlate the response, so I am not getting any response.
    This is urgent, please help me as soon as possible as possible.
    Thanks in advance.
    Joy

    Sovled it..
    OSB 10.3 JMS queue problem: JMSCorrelationID is null

  • JMS queue problem integrating with TIBCO

    Hi all!
    We have several communication channels between XI 3.0 (SP21) and TIBCO via JMS queues. All of them are working fine except  one. This problem only happens in development and quality systems with SP21, production has SP17 and doesn't have this error on the same communication channel.
    We are getting the following error in communication channel details...
    27-03-2008 16:32:21   XI message ID corresponding to the JMS message ID 'ID:EMS-QUALITY.14C46ECF3303EC:61' has the value 'null', with the ID: prefix removed+
    27-03-2008 16:32:21   XI message ID corresponding to JMS message with ID 'ID:EMS-QUALITY.14C46ECF3303EC:61' will be created with same value as JMSCorrelationID with value 'null'+
    27-03-2008 16:32:20   Error while processing message 'null';  detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error in converting Binary message <?xml version="1.0" encoding="UTF-8"?> <ns0:MT_PedCarga_GE xmlns:ns0="http://pt.galp.is-oil.ec">    <Partner>        <ZIDIF>62</ZIDIF>    </Partner>    <Controle>        <Nr_Envio>29183049</Nr_Envio>        <Dt_envio>20080229</Dt_envio>        <Tipo_Carga>CPAT</Tipo_Carga>        <Operador>230</Operador>    </Controle>    <PedCarga>        <FRETE>            <Tipo_Registo>N</Tipo_Registo>            <Inst_Carreg>ES41</Inst_Carreg>            <Data_Execucao>20080228</Data_Execucao>            <Resp_Transporte>13</Resp_Transporte>            <Transporte>          </Transporte>            <Transportador>1700</Transportador>            <Ref_Externa_head>2008022931859</Ref_Externa_head>            <Gera_Docs>X</Gera_Docs>            <Imprim_Docs>X</Imprim_Docs>            <Imprim_Ordem_Carreg>X</Imprim_Ordem_Carreg>            <Confirm_Autom>X</Confirm_Autom>            <Operador>230</Operador>        </FRETE>        <ENTREGA>            <Tipo_Destinatario>1</Tipo_Destinatario>            <Local_Entrega>14018</Local_Entrega>            <Cod_Produto>GOA []</Cod_Produto>            <Quantidade>05100</Quantidade>            <Ref_Externa_Item>01737307470601</Ref_Externa_Item>            <Regime_Fiscal>N</Regime_Fiscal>        </ENTREGA>        <ENTREGA>            <Tipo_Destinatario>1</Tipo_Destinatario>            <Local_Entrega>14018</Local_Entrega>            <Cod_Produto>GOC []</Cod_Produto>            <Quantidade>13300</Quantidade>            <Ref_Externa_Item>02737307470602</Ref_Externa_Item>            <Regime_Fiscal>R</Regime_Fiscal>        </ENTREGA>    </PedCarga> </ns0:MT_PedCarga_GE> to XI message for message: null: InvalidParamException: Invalid message id: com.sap.guid.GUIDFormatException+
    Any clues?
    Regards,
    Fernando Figueiredo

    We changed the conversation ID from Message ID to Correlation ID.

  • Jms queue problem in 11g

    exception trace is comming, while running the project in weblogic, in the project iam using jms queue, i configured the jms server and jms module and connection factory but it is showing these exception
    [The selected operation process could not be invoked.
    An exception occured while invoking the webservice operation. Please see logs for more details.
    oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: InvalidSecurity : error in processing the WS-Security security header]
    can any one please, provide the suggestions

    i got the solution for my problem, i just need to add owsm policies to my processs

  • JMS QUEUE Problems

    I have an ear that contains 2 Jar (for example JAR1.jar and JAR2.jar).
    JAR1 contains the MessageDrivenBean EJB1.
    JAR2 contains 2 Stateful EJBs: (for example EJB2 and EJB3).
    On webserver there is an JMS Queue called JMSQUEUE.
    The behaviour of my system are:
    When arrive an message on JMSQUEUE the EJB1 get this message.
    I'd like that when a particular external event occurs, the EJB1 stops to process the messages in the JMSQUEUE and that the continue to store all other messages that arrive.
    I thought to Undeploy the EJB1 but this is not a good solution, because if i do it, i undeploy all ear and all EJBs contained in the ear!
    There is another solution to do this ???
    best reagards
    Simone

    Hi Simone,
    IMHO, a MDB for might not be the best match for this. Anyway, if you want to keep using it here's a workaround:
      void onMessage(Message message) {
        if (!enabled()) {
          // wait a bit to avoid CPU load
          Thread.sleep(10000);
          // rollback the message
          messageDrivenContext.setRollbackOnly(); // or throw a runtime exception
        } else {
          // business code here
      bool enabled() {
        // implement lookup for enabled/disabled condition here
      }If you have any more questions on this, feel free to ask in this thread as I'm watching it ;-)
    Good luck
    Benoit

  • JMS Queue problems causing EJB to rollback....

              We recently purchased WLS 6.1 and we have been using the product for the last few
              months. I am having a problem which I have detailed below. I have provided as much
              information as possible. If you need additional information, please let me know.
              Server A Config:
              Pentium III, 1000Mhz
              Windows 2000, SP2
              WLS WebLogic Server 6.1 SP2 12/18/2001 11:13:46 #154529
              Server B Config:
              SunBlade 100
              Solaris 5.8
              WebLogic Server 6.1 SP2 12/18/2001 11:13:46 #154529
              Server A contains a session EJB called GoalManager. This EJB has a method named cancel().
              The transactional attribute for all methods supported by this bean is REQUIRED. GoalManager
              uses a transactional data source deployed on Server A named "goal". There is nothing
              special about this data source aside from the fact that I have enabled two phase
              commit for it because a previous error was indicating that this was a required setting
              for the pool. A JMS server exists on Server B. A queue named "emailQueue" is set
              up as a destination on this JMS server. I also have a MDB on Server B that listens
              for messages on this queue. When a message is received, the MDB's onMessage() method
              extracts some properties from the message and sends an email to the specified recipient
              in the message. I have confirmed that this queue and MDB are working properly because
              I ran a small test program from the command prompt which creates a message and sends
              it to the queue on Server B. The MDB gets the message and sends the email to the
              correct recipient, so I am sure there are no misconfigurations on the server.
              The problem is as follows: The cancel() method in the GoalManager EJB on Server A
              performs some database work. If no exceptions are raised, the last task in the method
              attempts to access the queue on Server B and send a message to the queue. Here is
              the code that I am using to access the queue:
              QueueConnectionFactory queueFactory = (QueueConnectionFactory)context.lookup( "javax.jms.QueueConnectionFactory");
              QueueConnection queueConnection = queueFactory.createQueueConnection();
              Queue queue = (Queue)context.lookup( "emailQueue");
              QueueSession queueSession = queueConnection.createQueueSession( false, Session.AUTO_ACKNOWLEDGE);
              QueueSender queueSender = queueSession.createSender( queue);
              The cancel() method executes without error, but when the EJB container on Server
              A attempts to commit the transaction at the end of the cancel() method, I am receiving
              the following error on Server A's log:
              <Error> <EJB> <Exception during commit of transaction Name=[EJB com.frx.emp.go.ejb.session.goal.GoalManagerBean.cancelGoal(com.frx.emp.entity.Employee,com.frx.emp.go.entity.Goal)],
              Xid=0:7c2dda32cf39a36e(6911242),
              Status=Rolled back. [Reason=javax.transaction.xa.XAException],
              numRepliesOwedMe=0,
              numRepliesOwedOthers=0,
              seconds since begin=2,
              seconds left=10,
              ServerResourceInfo[weblogic.jdbc.jts.Connection]=(state=rolledback,assigned=server1),
              ServerResourceInfo[JMS_EMailServer_NotDurable]=(state=rolledback,assigned=server1),
              SCInfo[FRX+server1]=(state=rolledback),
              SCInfo[frxnet+wlsvr1]=(state=rolledback),
              properties=({weblogic.transaction.name=[EJB com.frx.emp.go.ejb.session.goal.GoalManagerBean.cancelGoal(com.frx.emp.entity.Employee,com.frx.emp.go.entity.Goal)],
              weblogic.jdbc=t3://172.16.200.9:9005}),
              OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=server1+172.16.200.9:9005+FRX+,
              Resources={})],
              CoordinatorURL=server1+172.16.200.9:9005+FRX+): javax.transaction.xa.XAException
              at weblogic.jms.backend.BEXAResource.prepare(BEXAResource.java:853)
              at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResourceInfo.java:1124)
              at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResourceInfo.java:370)
              at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:186)
              at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:1822)
              at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:1607)
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:218)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
              at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:231)
              at com.frx.emp.go.ejb.session.goal.GoalManagerBean_e3dvd2_EOImpl.cancelGoal(GoalManagerBean_e3dvd2_EOImpl.java:459)
              at com.frx.emp.go.web.handler.UpdateGoalHandler.handleRequest(UpdateGoalHandler.java:55)
              at com.frx.emp.web.mvc.HandlerMappedController.service(HandlerMappedController.java:115)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              --------------- nested within: ------------------
              weblogic.transaction.RollbackException: Could not prepare resource 'JMS_EMailServer_NotDurable
              - with nested exception:
              [javax.transaction.xa.XAException]
              at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1475)
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:263)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
              at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:231)
              at com.frx.emp.go.ejb.session.goal.GoalManagerBean_e3dvd2_EOImpl.cancelGoal(GoalManagerBean_e3dvd2_EOImpl.java:459)
              at com.frx.emp.go.web.handler.UpdateGoalHandler.handleRequest(UpdateGoalHandler.java:55)
              at com.frx.emp.web.mvc.HandlerMappedController.service(HandlerMappedController.java:115)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              Just a quick note, I tried to change the following line to specify a "transacted"
              JMS session by passing "true" to the statement below. When I tested this, the cancel()
              method raised no exceptions, but the MDB on Server B is never invoked and the email
              is never sent. Strange.
              QueueSession queueSession = queueConnection.createQueueSession( true, Session.AUTO_ACKNOWLEDGE);
              If you need more info, let me know. I thank you for your help.
              

    Correct. According to the trace you have it set at 10 seconds, while the default is 30 seconds.
              Tom
              SAF wrote:
              > Thanks for the reply.
              >
              > Increase the trx time? You mean JTA, right?
              >
              > I already opened a case with BEA, so I'm waiting to get a response from them.
              >
              > Thanks again,
              >
              > Raffi
              >
              > Tom Barnes <[email protected]> wrote:
              > >Hi,
              > >
              > >I looked at the BEXAResource.java source code which the stack trace points
              > >at. It seems that from the
              > >JMS server's resource manager's point of view, it never heard of the transaction
              > >before, indicating
              > >that the transaction may have already rolled back. I think this could
              > >happen if the transaction
              > >times out before commit() is called, but I'm not sure what is wrong in your
              > >case -- as according
              > >to the trace you provided, your tx is 2 seconds old and your tx-timout is
              > >10 seconds.
              > >
              > >In any case, it looks like the culprit may be in the transaction code and
              > >not the JMS code...
              > >
              > >I suggest:
              > > A) increasing your tx timeout (what the heck give it a try)
              > > B) could it somehow be a clock synchronization problem? are multiple
              > >servers involved?
              > > C) posting to the transaction newsgroup
              > > D) contacting customer support
              > >
              > >Tom
              > >
              > >SAF wrote:
              > >
              > >> We recently purchased WLS 6.1 and we have been using the product for the
              > >last few
              > >> months. I am having a problem which I have detailed below. I have provided
              > >as much
              > >> information as possible. If you need additional information, please let
              > >me know.
              > >>
              > >> Server A Config:
              > >> Pentium III, 1000Mhz
              > >> Windows 2000, SP2
              > >> WLS WebLogic Server 6.1 SP2 12/18/2001 11:13:46 #154529
              > >>
              > >> Server B Config:
              > >> SunBlade 100
              > >> Solaris 5.8
              > >> WebLogic Server 6.1 SP2 12/18/2001 11:13:46 #154529
              > >>
              > >> Server A contains a session EJB called GoalManager. This EJB has a method
              > >named cancel().
              > >> The transactional attribute for all methods supported by this bean is
              > >REQUIRED. GoalManager
              > >> uses a transactional data source deployed on Server A named "goal". There
              > >is nothing
              > >> special about this data source aside from the fact that I have enabled
              > >two phase
              > >> commit for it because a previous error was indicating that this was a
              > >required setting
              > >> for the pool. A JMS server exists on Server B. A queue named "emailQueue"
              > >is set
              > >> up as a destination on this JMS server. I also have a MDB on Server B
              > >that listens
              > >> for messages on this queue. When a message is received, the MDB's onMessage()
              > >method
              > >> extracts some properties from the message and sends an email to the specified
              > >recipient
              > >> in the message. I have confirmed that this queue and MDB are working properly
              > >because
              > >> I ran a small test program from the command prompt which creates a message
              > >and sends
              > >> it to the queue on Server B. The MDB gets the message and sends the email
              > >to the
              > >> correct recipient, so I am sure there are no misconfigurations on the
              > >server.
              > >>
              > >> The problem is as follows: The cancel() method in the GoalManager EJB
              > >on Server A
              > >> performs some database work. If no exceptions are raised, the last task
              > >in the method
              > >> attempts to access the queue on Server B and send a message to the queue.
              > >Here is
              > >> the code that I am using to access the queue:
              > >>
              > >> QueueConnectionFactory queueFactory = (QueueConnectionFactory)context.lookup(
              > >"javax.jms.QueueConnectionFactory");
              > >> QueueConnection queueConnection = queueFactory.createQueueConnection();
              > >> Queue queue = (Queue)context.lookup( "emailQueue");
              > >> QueueSession queueSession = queueConnection.createQueueSession( false,
              > >Session.AUTO_ACKNOWLEDGE);
              > >> QueueSender queueSender = queueSession.createSender( queue);
              > >>
              > >> The cancel() method executes without error, but when the EJB container
              > >on Server
              > >> A attempts to commit the transaction at the end of the cancel() method,
              > >I am receiving
              > >> the following error on Server A's log:
              > >>
              > >> <Error> <EJB> <Exception during commit of transaction Name=[EJB com.frx.emp.go.ejb.session.goal.GoalManagerBean.cancelGoal(com.frx.emp.entity.Employee,com.frx.emp.go.entity.Goal)],
              > >> Xid=0:7c2dda32cf39a36e(6911242),
              > >> Status=Rolled back. [Reason=javax.transaction.xa.XAException],
              > >> numRepliesOwedMe=0,
              > >> numRepliesOwedOthers=0,
              > >> seconds since begin=2,
              > >> seconds left=10,
              > >> ServerResourceInfo[weblogic.jdbc.jts.Connection]=(state=rolledback,assigned=server1),
              > >> ServerResourceInfo[JMS_EMailServer_NotDurable]=(state=rolledback,assigned=server1),
              > >> SCInfo[FRX+server1]=(state=rolledback),
              > >> SCInfo[frxnet+wlsvr1]=(state=rolledback),
              > >> properties=({weblogic.transaction.name=[EJB com.frx.emp.go.ejb.session.goal.GoalManagerBean.cancelGoal(com.frx.emp.entity.Employee,com.frx.emp.go.entity.Goal)],
              > >>
              > >> weblogic.jdbc=t3://172.16.200.9:9005}),
              > >> OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=server1+172.16.200.9:9005+FRX+,
              > >> Resources={})],
              > >> CoordinatorURL=server1+172.16.200.9:9005+FRX+): javax.transaction.xa.XAException
              > >> at weblogic.jms.backend.BEXAResource.prepare(BEXAResource.java:853)
              > >> at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResourceInfo.java:1124)
              > >> at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResourceInfo.java:370)
              > >> at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:186)
              > >> at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:1822)
              > >> at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:1607)
              > >> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:218)
              > >> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
              > >> at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:231)
              > >> at com.frx.emp.go.ejb.session.goal.GoalManagerBean_e3dvd2_EOImpl.cancelGoal(GoalManagerBean_e3dvd2_EOImpl.java:459)
              > >> at com.frx.emp.go.web.handler.UpdateGoalHandler.handleRequest(UpdateGoalHandler.java:55)
              > >> at com.frx.emp.web.mvc.HandlerMappedController.service(HandlerMappedController.java:115)
              > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              > >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
              > >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              > >> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
              > >> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
              > >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              > >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              > >> --------------- nested within: ------------------
              > >> weblogic.transaction.RollbackException: Could not prepare resource 'JMS_EMailServer_NotDurable
              > >> - with nested exception:
              > >> [javax.transaction.xa.XAException]
              > >> at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1475)
              > >> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:263)
              > >> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
              > >> at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:231)
              > >> at com.frx.emp.go.ejb.session.goal.GoalManagerBean_e3dvd2_EOImpl.cancelGoal(GoalManagerBean_e3dvd2_EOImpl.java:459)
              > >> at com.frx.emp.go.web.handler.UpdateGoalHandler.handleRequest(UpdateGoalHandler.java:55)
              > >> at com.frx.emp.web.mvc.HandlerMappedController.service(HandlerMappedController.java:115)
              > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              > >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
              > >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              > >> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
              > >> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
              > >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              > >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              > >>
              > >> Just a quick note, I tried to change the following line to specify a "transacted"
              > >> JMS session by passing "true" to the statement below. When I tested this,
              > >the cancel()
              > >> method raised no exceptions, but the MDB on Server B is never invoked
              > >and the email
              > >> is never sent. Strange.
              > >>
              > >> QueueSession queueSession = queueConnection.createQueueSession( true,
              > >Session.AUTO_ACKNOWLEDGE);
              > >>
              > >> If you need more info, let me know. I thank you for your help.
              > >
              

  • JMS Queue problem

    Can I create multiple QueueReceiver object using createReceiver(queueObj) over same QueueConnection and QueueSession ?
    Like :
    -------QueueConnectionFactory qConnFactory=null;
    QueueConnection qConn =null;
    QueueSession qSession=null;
    QueueReceiver receiver_1=null;
    QueueReceiver receiver_2=null;Multiple Queue Object
    Queue queueObjOne=null;
    Queue queueObjTwo=null;
    qConnFactory= getQueueConnectionFactory();
    qConn = (QueueConnection)qConnFactory.createConnection();
    qSession=qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);start the Queue Connection
    qConn.start();Create Receiver One
    receiver_1 = qSession.createReceiver(queueObjOne,);Create receiver Two
    receiver_2 = qSession.createReceiver(queueObjTwo,);Can any bosy please help whether the approach is Ok or some better way?

    I don't know about other JMS providers but with SUN MQ, yes, you can have multiple receivers on the same session.
    Tom

  • Integration Broker : Sending peoplesoft Data into JMS queues using  IB

    Hi All,
    I am working on integration of peoplesoft and SOA middleware. I am basically SOA middleware developer. So not much aware at peoplesoft side.
    My requirement is that need to extract information from peoplesoft and send it to third party systems(through JMS queues) and also i explored that Integration broker is going to help in such cases.
    Could you please answer my some of the questions.
    1)How can i extract information of peoplesoft. lets say i need to extract customer data from peoplesoft.
    2) steps to send above extracted customer info to third party system using integration broker.
    It would be sending information to JMS topics.
    So please let me know how we can handle JMS queues in peoplesoft.
    Please refer the related documents for outbound interface strategies.
    Thanks inadvance.
    Edited by: PraveenT2 on Jun 3, 2009 4:06 AM

    Mike,
    Biztalk do have Peoplesoft Adapter. Just configure it and use appropriate Component Interface to push or pull the data.
    Thanks,

  • Create jms queue xml data server

    Hi,
    What's the difference between jms queue and jms queue xml data servers and how to create jms queue xml data server.
    Thanks.

    Hello,
    JMS messages can principally be processed by Oracle Data Integrator in two formats:
    - JMS Messages: containers for rows of data, handled through JMS Queue/JMS Topic Technologies. With JMS Queue/JMS Topic technologies, each JMS destination is defined similarly to a flat file datastore. Each message in the destination is a record in the datastore.
    - XML Messages: containers for XML files, handled through JMS XML Queue/JMS XML Topic Technologies. With JMS XML Queue/JMS XML Topic technologies, each messages payload contains a complete XML data structure. This structure is mapped into a relational schema (XML Schema) which appears as a model. This use the Oracle DI Driver for XML (see the driver documentation in Oracle DI documentation).
    Find below a step by step creation process for such a destination:
    1. Data Server
    To create a JMS XML Queue data server, you declare a simple JNDI connection. The only JMS XML specific information is added to the URL. This information defines the XML file format.
    The JNDI URL should be : <JMS_RESOURCE>?d=<DTD_FILE>&f=<XML_FILE>&s=<SCHEMA>&JMS_DESTINATION=<JMS_DESTINATION_NAME>
    - JMS_RESOURCE: JNDI resource corresponding to your JMS queue that will contain the XML payload. You would specify this URL if you were managing normal JMS messages.
    - DTD_FILE: path to a DTD file that describes the XML structure. Mandatory if the parameter XML_FILE is omitted.
    - XML_FILE: path to the XML file with a structure similar to the expected XML messages. Mandatory if the DTD_FILE parameter is omitted.
    - SCHEMA: schema name that will contain the XML structure. This value must match the one set for the physical schema attached to this data server. This parameter is mandatory.
    - JMS_DESTINATION_NAME: name of the JMS queue or topic. This parameter is mandatory.
    2. Schema
    Creation is straightforward: In the Schema (Schema) and Schema (Work Schema), enter the name of the <SCHEMA> defined in the data server JNDI URL.
    3. Model
    Use standard reverse-engineering. As the Oracle DI Driver for XML is used the XML structure will be reversed as a relational structure.
    Regards,
    - FX

  • Connect from Weblogic JMS queue to SAP WAS JMS queue

    Hi,
    I am trying to setup a WLS 8.1 messaging bridge between a weblogic JMS queue and a SAP WAS JMS queue. I have configured a queue on both Weblogic and SAP WAS and I have set up the messaging bridge and bridge destintations in weblogic. However when weblogic tries to get the SAP initial context factory it fails with the error below.
    I have added the SAP Client jars to the weblogic system classpath, and in the weblogic startup script but it still fails. Has anyone connected from an external JMS queue to a SAP WAS JMS queue that could provide me with some guidence?
    <10/08/2006 08:23:45 AM WST> <Warning> <Connector> <BEA-190032> << Weblogic Mess
    aging Bridge Adapter (XA)_eis/jms/WLSConnectionFactoryJNDIXA > ResourceAllocatio
    nException of javax.resource.ResourceException: ConnectionFactory: failed to get
    initial context (InitialContextFactory =com.sap.engine.services.jndi.InitialCon
    textFactoryImpl, url = ux0800:55304, user name = username) on createManagedConnectio
    n.>
    Thanks
    Warren

    Stoyan,
    Thanks for that.
    My problem ended up being a classpath problem. I referenced the directory of the SAP jars in the weblogic start up script. When I changed this to reference each jar individually it worked.
    I have a new issue now which may have something to do with security. The trace suggests it is logging on as the guest user, even though I entered my username and password in the Messaging bridge.
    #1.5#000E7FED310600A30000008A0000302D00041AA399E338B4#1155189870559#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=BWIP#J2EE_GUEST#0####165536f0283611db8903000e7fed3106#SAPEngine_Application_Thread[impl:3]_126##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerInvalidDestinationException: No destination with ID=0 found.
            at com.sap.jms.server.service.impl.RegistryServiceImpl.getDestinationContext(RegistryServiceImpl.java:404)
            at com.sap.jms.server.sessioncontainer.InboundBus.getDestinationContext(InboundBus.java:98)
            at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:153)
            at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
            at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
            at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
            at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:635)
            at com.sap.jms.server.JMSServerFrame.request(JMSServerFrame.java:536)
            at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
            at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
            at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
            at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Warren

  • Weblogic Integration WLW Message Queue Problem

    I am using BEA Weblogic Integration (BEA WLI). While testing processes, I get the following error on Weblogic Server Console:
    <Feb 27, 2006 10:56:55 AM CET> <Warning> <WLW> <000000>
    A message was unable to be delivered from a WLW Message Queue. Attempting to deliver the onAsyncFailure event
    Please can you suggest what can be the problem.

    The bridge does not do anything to the properties on the messages. It just sends the messages that it received from the WLS JMS queue to MQSeries queue.
              Have you tried to receive directly from the WLS JMS queue and see if the receiver can retrieve the String property?
              Dongbo

  • Alsb trying to reach weblogic jms queues through VIP

    Hi,
    I have jms queues created in wLS. ALSB business service which puts the message into the queue .
    ALSB and WLS are in 2 different boxes. When the end pointas follows jms://hostname:portnumber/connection factory/JNDI name is given the service is able to reach the Q.
    The problem arises when VIP is used to connect to any of the queues in the box. the jms protocol is getting converted to "t3" protocol which is not understood by VIP and hence resulting in connection timed out exception .
    Can anybody please help me to access jms queues through VIP from ALSB service .
    Thanks in Advance ,
    LKV

    the jms protocol is getting converted to "t3" protocol which is not understood by VIP and hence resulting in connection timed out exception . Virtual IP as such doesnt influence anything...what it matters is what is listening at the Virtual IP, If you have configured weblogic server listen thread at this port then it should be able to understand t3.. Weblogic server's listen thread can interpret all supported protocol's ( http, t3, iiop, ldap etc) on its listen port...
    So check at your wls side whether the server is listening at virtual ip and port. If you have firewall between alsb and wls then it could be an issue as firewalls can block certain protocols on an opened port..

  • Compare creation of Datasources and JMS Queues : SAP vs (Weblogic/Websphere

    I am used to creating JDBC Datasources and JMS Queues on Weblogic/Websphere thru their Admin applications.
    Can someone compare/contrast that process to that on SAP's netweaver ( either using NWA or Visual Administrator).
    Thanks

    Hi Parag,
    For the process of creating JDBC datasources and JMS resources @ SAP NetWeaver you can refer to the documents here on SDN and help.sap.com, and compare that process for yourself, thus not being influenced by others' biased or unbiased opinions.
    For NetWeaver 04 and 04s these would be:
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/b0/6e62f30cbe9e44977c78dbdc7a6b27/frameset.htm">JDBC Connector Service</a>
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/22/cf4e71c46cdb4da31153be96c5389f/frameset.htm">JMS Connector Service</a>
    For the <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/javaee5">Java EE 5 Edition</a>:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7bb9751d-0e01-0010-febd-c3adce2c408c">Working with Database Tables, DataSources and JMS Resources</a>
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/806e75a0-0e01-0010-2587-fc518de8ac1a">Administration Guide</a> -> section "Application Resources Management" (pages 89-104)
    Hope that helps!
    Your feedback/findings are very welcome!
    -Vladimir

  • OC4J 9.0.4: Problem receiving message from JMS queue

    I've created an application which puts XML files in a JMS queue and try to get it out again. The enqueing (sending) is no problem, but when I dequeue from the same queue I receive nothing and if I don't specify a wait time the programs hangs.
    If I create a QueueBrowser I can see there are messages in the queue.
    Can someone tell me what I do wrong?
    Here is the code of my dequeue action:
    public String dequeue(int qName) throws RbsSysException
            final String method = "dequeue(int qName)";
            _log.debug(method);
            QueueConnection queueConnection = null;
            try
                queueConnection = _queueConnectionFactory.createQueueConnection();
                QueueSession queueSession = queueConnection.createQueueSession(false,
                        Session.AUTO_ACKNOWLEDGE);
                QueueReceiver queueRcv = queueSession.createReceiver(getQueue(qName));
                _log.debug("queue = "+ queueRcv.getQueue().getQueueName());
                // Due to bug 3376983 in OC4J We cannot use TextMessage if it exceeds
                // 64 kb. Therefore use ObjectMessage.
                Message msg = queueRcv.receiveNoWait();
                _log.debug("msg = " + msg);
                ObjectMessage objMsg = (ObjectMessage)msg;
                //ObjectMessage objMsg = (ObjectMessage) queueRcv.receiveNoWait();
                _log.debug("objMsg = " + objMsg);
                if (objMsg != null)
                    return (String) objMsg.getObject();
                else
                    return null;
            catch (JMSException je)
                throw new RbsSysException(je);
            finally
                if (queueConnection != null)
                    try
                        queueConnection.close();
                    catch (Exception any)
                        _log.error("Error while closing QueueConnection: ", any);
        }

    Did you implement javax.jms.MessageListener and the method onMessage(Message)?
    If you use onMessage() as wel as receive (or receiveNoWait() or receive(long)), the onMessage() can be called, while the main thread is blocking on a synchronous receive, so make sure you use only one of the two methods: onMessage() or receive.
    Receive() blocks your thread until a message is published. So your program 'hangs' by design. Usually this is used when your program is waiting for a particular message. Otherwise use onMessage().
    ReceiveNoWait() checks if something is in the queue at that very moment, so if nothing is there (yet), the main thread continues.
    Hope this helps,
    Lonneke

  • JMS Queue servicing algorithm problems

    I'm using WLS 5.1, and have run into a problem with the way that WLS
              services JMS queues.
              I have two queues (Q1 and Q2, created in that order), each of which is
              serviced by a session pool.
              The problem is that as long as there are messages pending in Q1, there will
              be no messages serviced from Q2. The message listeners for Q2 don't get any
              work until Q1 is completely empty. If Q1 happens to get a big chunk of
              messages dumped into it, then all work on Q2 grinds to a halt until the
              first queue is cleared up.
              If I reverse the creation order, then the same problem occurs the other way
              around.
              Are there any patches or workarounds for this? I would have expected a more
              balanced approach to servicing the queues.
              -Chris Solar, MetaSolv Software.
              

    Known problem with 5.1. No good 5.1 work arounds. Use 6.x or 7.x,
              preferably 7.x.
              _sjz.
              "Chris Solar" <[email protected]> wrote in message
              news:[email protected]..
              > I'm using WLS 5.1, and have run into a problem with the way that WLS
              > services JMS queues.
              >
              > I have two queues (Q1 and Q2, created in that order), each of which is
              > serviced by a session pool.
              >
              > The problem is that as long as there are messages pending in Q1, there
              will
              > be no messages serviced from Q2. The message listeners for Q2 don't get
              any
              > work until Q1 is completely empty. If Q1 happens to get a big chunk of
              > messages dumped into it, then all work on Q2 grinds to a halt until the
              > first queue is cleared up.
              >
              > If I reverse the creation order, then the same problem occurs the other
              way
              > around.
              >
              > Are there any patches or workarounds for this? I would have expected a
              more
              > balanced approach to servicing the queues.
              >
              > -Chris Solar, MetaSolv Software.
              >
              >
              

Maybe you are looking for

  • Part of CSS not working

    I have a problem in that the page i'm working on is not displaying correctly in internet explorer on pc. All other browsers, firefox on pc & mac, safari on mac, opera on mac, ie on mac, all display it correctly, as directed from my css style sheet. I

  • Using Grid Component in Java

    Hi all, I have to develop a program using Java. This is my first project of Java. I haven't got any experience on GUI design of Java. In my project, I have to use a lot of grid. How can I use the "Grid Component" in Java? I don't know exactly. But I

  • My magazine in Newsstand no longer exists

    Having problems with a magazine in the Newstand app. I went through the usual procedure of deleting the magazine in the app and downloading it again, only to find its not there.The index scroll shows it is there and the magazine support staff insists

  • Viewing video clip on website

    i have a BB curve 9700 unable to open media video clip on website. anybody can help please? thank you in advance.

  • Getting aqua back on dashboard?

    DASHBOARD  in Lion is different in that it switches to a completely new full screen page rather than an overlay on an existing screen.  This is a pain when using a sspreadsheet or viewing a bank statement when you want to add a few numbers up taken f