JMS MQSeries Communication.

I am new to JMS and struggling to understand how JMS communicates with MQSeries. I have MQSeries running on Sun Solaris and trying to write a JMS client on Win-2000. I have Suns's J2EE application server 8.0 running on the Win-2000 box. Here are my questions:
1. Do I need an LDAP server for this?
2. If answer to the first question is yes: Is LDAP server part of Sun's J2EE Application Server 8.0 or I need to have it seperate?
3. Does anyone know of a free LDAP server available for download?
4. How are LDAP server and the application server work together to locate and post message on MQSeries queue?
5. Do I need to have a special setup on the MQ Server side to support JMS?
Any help will be appreciated. I am desperate to find these answers.
- Pankaj

Hi Sharma,
1. With SUN AS you can use File Store instead of LDAP to store objects (the same is probably true for MQSeries).
This sample frorm SUN Message Queue SP1 show how to use the file store:
D:\Program Files\Sun\MessageQueue3\demo\helloworld\helloworldmessagejndi.java
2. I think it is a separate product: Sun Java System Directory Server Enterprise Edition
3. http://www.openldap.org/
4. I think the LDAP server is only used as an Object Store for Connection Factories and Destinations, and the messages are stored by the JMS provider in the application server.
It is used by JNDI to lookup those objects.
Check if MQSeries also supports JMS 1.1 as SUN AS 8 does.
Regards,
Magnus Strand

Similar Messages

  • JMS Sender Communication  Channel problem

    Hi XI gurus!!
    I have a JMS Sender Communication Channel that cannot get information from JMS TIBCO queue.
    In defaultTrace.XX.trc I see the following information and errors:
    #1.#00144F249F1500C70000087D00002D8300044A22A193A198#1207412506993#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildConnection()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000087E00002D8300044A22A193A201#1207412506993#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildSessions()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1500C70000087F00002D8300044A22A193A552#1207412506993#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Error##Plain###2008-04-05 17:21:46 [161906789 SAPEngine_Application_Thread[impl:3]_52] [TIBCO EMS]: createQueueSession qsess=198151 qconn=45502 tran=true ackmode=1#
    #1.#00144F249F1500C70000088000002D8300044A22A193A670#1207412506994#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildSessions()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Info##Java###Sucessfully created session {0} for profile {1}#2#com.tibco.tibjms.TibjmsQueueSession@3a5f233#
    {GenericConnectionProfileImpl
    {Description=ConnectionProfile of channel: JMS_Sender_loginCheckReq_001on node: 21291150 having object id: 7e7ee107bc2031d2bc79fa2fce15bbed,
    JmsMessageSelector=,
    ConnectionFactoryConstructor=null,
    ConnectionFactoryFactoryInvocation=null,
    ConnectionFactoryInvocations=[],
    DestinationConstructor=
    {ConstructorInvocation
    {className=null,
    invokeParams=[]
    DestinationInvocations=[],
    MessageInvocations=[],
    DestinationName=null,
    User=,
    Password=,
    isJmsSessionTransacted=true,
    InitialContextEnvironment={java.naming.provider.url=190.10.0.133:9222, java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory},
    LookupConnectionFactory=QueueConnectionFactory,
    LookupDestination=GALP.PRD.TIGERC.LOGIN.REQ,
    SerializedConnectionFactoryPath=null,
    SerializedDestinationPath=null,
    Flags=0000000000000000000000000000000000000000000000000000100000000010
    #1.#00144F249F1500C70000088100002D8300044A22A193A7EE#1207412506994#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildSessions()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000088200002D8300044A22A193A85F#1207412506994#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createDestination()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1500C70000088300002D8300044A22A193B153#1207412506997#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Error##Plain###2008-04-05 17:21:46 [161906789 SAPEngine_Application_Thread[impl:3]_52] [TIBCO EMS]: createQueueConnection qconn=45503 qconfac=QueueConnectionFactory[url=tcp://190.10.0.133:9222;clientID=null;Properties={}] user=null#
    #1.#00144F249F1500C70000088400002D8300044A22A193E3CF#1207412507009#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createDestination()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000088500002D8300044A22A193E571#1207412507010#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.executeDestinationInvocations#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1500C70000088600002D8300044A22A193E64B#1207412507010#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.executeDestinationInvocations#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000088700002D8300044A22A193E714#1207412507010#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildMessageProducers()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1508770000000000002D8300044A22A83A6308#1207412618584#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#Thread[TIBCO EMS TCPLink Reader (45502),5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Error##Plain###2008-04-05 17:23:38 [2092826462 TIBCO EMS TCPLink Reader (45502)] [TIBCO EMS]: received msg from daemon conn=45502 seqid=40664365 msgid=ID:EMS-SERVER.91446ECB042B480:12545#
    #1.#00144F249F1508770000000100002D8300044A22A83A650C#1207412618585#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#Thread[TIBCO EMS TCPLink Reader (45502),5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Error##Plain###2008-04-05 17:23:38 [2092826462 TIBCO EMS TCPLink Reader (45502)] [TIBCO EMS]: post msg to session sess=198151 cons=261547 seqid=40664365 msgid=ID:EMS-SERVER.91446ECB042B480:12545#
    In the last two lines we can see that SAP XI do a connection to TIBCO and is getting an unknown error, even in debug (note 856346) I cannot get any information.
    Actually we are running SAP XI 3.0 SP21, but this was working fine in SAP XI 3.0 SP17. We have more than 100 Communication Channels working fine and only is having this strange behavior.
    BTW if we put manually information in TIBCO QUEUE it works fine, but automatically doesn't pick the message.
    Thanks

    HI,
    As per the trace details given please consider few of the below options....
    What do u see in adapter monitoring tool for JMS adapter?
    http://hostname:5XX00/mdt/amtServlet
    Did you follow the document on correlation of JMS messages?
    In communication channel You have to set
    Correlation ID -> XI conversationID
    XI message ID->GUID
    XI Conversation ID -> JMS correlation ID.
    Now in the custom J2EE application you should set
    jmscorrelationid of message before sending in to queue to jms correlation id of message before receiving from the queue.
    This thread deals with the issue..
    JMS Queue monitoring
    Check  if the JMS Sender adapter EOIO is with serialized messages 
    Thanks
    Swarup

  • JMS sender communication channel content conversion

    Hi,
    I struck with the content conversion in the JMS Sender communication channel.
    I have configured the communication channel with the filed fixed lengths. (Simple type)
    The field fixed lengths i have given are 10,2,3,11
    The contents in the file 1000000072  230 111
    but, in the input xml after conversion iam getting 100000007 in the first field and 2 in the second field 23 in the third field.
    I have configured the sender communication channel as in the document in SDN.
    Even, i configured several communication channels. I didn't get this strange error any time.
    I have gone through SDN to fix this issue, but i didn't get solution.
    If anyone got rectified this kind of error, please answer your solution to me
    Thanking you,
    Regards,
    Krishnaraju.

    Hi,
    Thanks for all your support. The issue got resolved.
    The issue is due to the file, In the file the special characters are appearing. We are not able to see these characters in the notepad, wordpad, text editor.
    But, these characters are appearing in th syn text editor. So, we removed those characters and processessed the file. Now, it is successfull.
    Regards,
    Krishnaraju.

  • JMS (Sender Communication Channel) and MQ in Mainframe (Legacy) System

    Hi All,
    Can we use JMS Sender Communication Channel in XI that runs on Windows 2003 server to DIRECTLY poll messages from MQ in Mainframe (Legacy) system??
    I understand that we can install MQ on XI server and have mainframe push the messages to XI MQ so that JMS can poll but wanted to see if there is a way to do this without having MQ on XI server.
    If you know of any documentation regarding this, can you please post it?
    Thanks,
    Jay

    Jung,
    Are you looking for this help:
    /people/william.li/blog/2006/11/13/how-to-use-saps-webas-j2ees-jms-queue-in-exchange-infrastructure
    Also check this sap help:
    http://help.sap.com/saphelp_nw04/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
    ---Satish

  • Sender JMS Synchronous communication channel not picking up files from JMS

    Hello,
    One of our Sender JMS synchronous communication channel (used Sync/Async bridge in the module section to make it Synchronous) is not picking up files from JMS system though the channel looks to be active (greeen).
    When I am trying to stop the channel, it is giving error as "1 of 1 administered and selected channels have not been stopped", and after this when I start the cannel again it shows green but not picking up any files.
    if anyone is haivng any solution for this, please reply back.
    Thanks in advance.

    Messages available in JMS system? please check queue's if message were there and it is not picking up then some thing wrong with cc.
    simple solution create new communication channel with same details and try to use the same.

  • Sharing JMS sender communication channels

    Hi all,
    We have flatfile interfaces to XI JMS where we would like to share the JMS sender communication channel.
    This is normally not possible since you cannot have two sender agreements with the same comm channel.
    Are there workarounds for sharing JMS comm channels (we cannot make use of content fields, we do no conversion). is there a way with variables perhaps?
    Thanks for any help
    Tom

    Tom
    There is an otption of send a file to multiple receivers.
    Therefore use your receiver determination to have multiple receivers and set there some condition.Thus making conditional receivers. Or have two receiver determinations.
    This might help you.
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    /people/prasadbabu.nemalikanti3/blog/2006/03/10/bpmsingle-sender-and-multiple-receivers-based-on-synchronous-exchangeswitch-part-1
    /people/prasadbabu.nemalikanti3/blog/2006/02/27/collecting-and-bundling-vendor-records-from-different-multiple-interfaces-file-systempeoplesoft-and-sending-to-sap-r3-system-part-2
    http://help.sap.com/saphelp_nw04/helpdata/en/7d/577941761b070de10000000a1550b0/content.htm
      Pls : Reward points if helpful.
    Vishal K

  • 2 JMS Sender Communication Channels polling 1 MQ Queue

    Hi Experts,
    I have a situation where 2 JMS sender communication channels are polling 2 different message type data (via content conversion in JMS) from 1 MQ queue.  However adapters are having problem polling the right message from the queue.
    Is this something that is not possible?
    I know that we can possibly use 2 MQ queues - one for JMS 1 with message type 1 and the other for JMS 2 with message type 2
    OR
    1 JMS with 1 common message type with 1 MQ queue.
    But I want to confirm whether my current situation is suppose to work or not.
    Thanks,
    Jay

    >
    Jung Sun Ko wrote:
    > Hi Experts,
    >
    > I have a situation where 2 JMS sender communication channels are polling 2 different message type data (via content conversion in JMS) from 1 MQ queue.  However adapters are having problem polling the right message from the queue.
    > Is this something that is not possible?
    Maintain different queues for different message types.
    The adapters else will just pick the message that comes to the queue first based on the polling time irrespective of the message type. It is not intelligent enough
    >
    > I know that we can possibly use 2 MQ queues - one for JMS 1 with message type 1 and the other for JMS 2 with message type 2
    > OR
    > 1 JMS with 1 common message type with 1 MQ queue.
    >
    > But I want to confirm whether my current situation is suppose to work or not.
    >
    > Thanks,
    >
    > Jay
    Hope the above replies answers your question

  • JMS, MQSeries, R/3 Link, NT and AIX...

    Hi all,
    To put you in situation, I have a java application which can run from any type of OS as of now. It sends documents to a queue (IDOCS) and those documents are then sent to SAP by an R/3 Link adapter. Using native binding and running the java application on the same computer as the QueueManager (AIX) it was all working fine.
    Now, I have translated my app to use JMS instead and tried to run it on my Windows 2000 PC. The message are sent allrigth to the queue, but R/3 Link is now giving me a handfull of errors, complaining about conversion, character sets and things like that.
    Here is a sample of errors I get:
    02/18/03 17:00:39 SMQ4165: Warning on MQGET from inbound queue. Reason code 2110.
    EXPLANATION: The attempt to get a message from the inbound message queue returned a warning. The warning code was 2110. The message will be passed to the use
    r exit if one has been specified. If no exit was specified, the message will be passed to the bad message queue. If no bad message queue was specified, the
    message will be left on the inbound queue, and the server will terminate.
    ACTION: None.
    02/18/03 17:00:39 SMQ4192: A data conversion problem occurred on the MQGET. Attempting to process message.
    EXPLANATION: A warning was issued because the message needs codepage conversion, but the message is either not in MQSTR format, or a user-defined data- conver
    sion exit call failed.
    ACTION: Ensure that incoming messages from machines with a different code page, are in MQSTR format or that there is a user exit defined to convert messages i
    n other formats.
    02/18/03 17:00:40 SMQ4167: IDoc has an invalid structure version. IDoc value="16777216". Expected value="1".
    EXPLANATION: The value of the version field in the IDoc header structure contains an invalid value.
    ACTION: Ensure that the IDoc message starts with a valid version of the Saplink header structure (MQSAPH).
    02/18/03 17:00:40 SMQ4191: A message was put to the bad message queue. Bad message type 1, reason 4108.
    EXPLANATION: The message was not in a valid IDoc format. The bad message type is 1 and the bad message reason is 4108.
    ACTION: Check the bad message reason code in the bad message header of the message. Attempt to correct the error and send the message again.
    I finally set the CCSID to 819 in the connection string, now I suspect that my problem is related to the encoding I use but I can't find what to set it to instead. I write everything in a ByteMessage by the way, just as I was doing it with the native bindings.
    Does anyone know how I am supposed to set this up? What encoding type should I set it to? Is the CCSID correct? previously, I was setting the format this way: bytesMessage.format = "MQHSAP ";
    But using JMS, there is no such property so I tried to just write it to the ByteMessage, not sure this works either...
    Thanks in advance,
    Daniel
    If it can be of any help, here is a code fragment of what I am doing:
    using native binding, which was working fine
    //Add the mandatory R3/Link header to our message
    bytesMessage.writeBytes("SAPH");
    bytesMessage.writeInt(1);
    bytesMessage.writeInt(108);
    bytesMessage.writeInt(273);
    bytesMessage.writeInt(819);
    bytesMessage.writeBytes("MQSTR ");
    for(int i = 28; i < 108; i++)
    bytesMessage.writeByte(32);
    bytesMessage.writeBytes(textMessage);
    bytesMessage.encoding = MQC.MQENC_INTEGER_NORMAL;
    bytesMessage.format = "MQHSAP ";
    And using JMS:
    //Test code
    queue = session.createQueue("queue://" + manager + "/" + name + "?priority=5&persistence=2&targetClient=1&encoding=" +
    MQC.MQENC_INTEGER_REVERSED + "&CCSID=819");
    //Add the mandatory R3/Link header to our message
    bytesMessage.writeBytes("SAPH".getBytes());
    bytesMessage.writeInt(1);
    bytesMessage.writeInt(108);
    bytesMessage.writeInt(273);
    bytesMessage.writeInt(819);
    bytesMessage.writeBytes("MQSTR ".getBytes());
    StringBuffer padding = new StringBuffer(80);
    for(int i = 28; i < 108; i++)
    padding.append(" ");
    bytesMessage.writeBytes(padding.toString().getBytes());
    bytesMessage.writeBytes("MQHSAP ".getBytes());
    bytesMessage.writeBytes(textMessage.getBytes());
    queueSender.send(bytesMessage);

    Hi There,
    I know you used JMS and Link for R/3.
    Now I am doing the same but I am getting the same problem besides I am doing what you mention in the forum.
    Can you give me a hand to fix this?
    I have configured and MQSeries under win2003 and in the same machine a Link 4 R/3. I have a Java app using a .bindings file to connect to the Q and send a message the same way you did, but i am getting this error:
    IDoc has an invalid structure header. IDoc value="RFH ". Expected value="SAPH".
    IDoc has an invalid structure version. IDoc value="2". Expected value="1".
    IDoc has an invalid system number. IDoc value=<T.
    IDoc has an invalid client. IDoc value=�Y&#9830;.
    IDoc has an invalid language. IDoc value=.
    A message was put to the bad message queue. Bad message type 1, reason 4110.
    It seems as if the all the JMS headers are at the begining of the msg and it always throw the same error. it doesn't matter what data I put in the bytesMessage.
    I would really appreciate your help.
    Here a portion code of my SendMessage operation.
         public String EnviarMsg(String Msg) throws JMSException {
              String resp = null;
              try {
                   if (getQueueSend() == null) {
                        // Create un objeto QueueSender como productor del mensaje.
                        setQueueSend(QSess.createSender(MQueue));
                        // Crear y enviar un mensaje a la cola.
                   * Aqui viene codigo para enviar msgs a la cola en formato SAP
                   txtMsg = QSess.createBytesMessage();
                   txtMsg.writeBytes("SAPH".getBytes());
                   txtMsg.writeInt(1);
                   txtMsg.writeInt(108);
                   txtMsg.writeInt(273);
                   txtMsg.writeInt(819);
                   txtMsg.writeBytes("MQSTR ".getBytes());
                   byte b = 32;
                   for(int i=28; i<108; i++)
                        txtMsg.writeByte(b);
                   txtMsg.writeBytes(Msg.getBytes());
                   //txtMsg.encoding = MQC.MQENC_INTEGER_NORMAL;
                   txtMsg.setStringProperty("JMS_IBM_Format", "MQHSAP ");
                   //txtMsg.setText(Msg);
                   // QueueSend.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                   // QueueSend.setTimeToLive(30000);Funciona. Probado con el MQSeries
                   // 6.0
                   QueueSend.send(txtMsg);
                   resp = "OK";

  • SOAP over JMS Sender Communication Channel - How to?

    Hello folks,
    I have an async. scenario in which a SOAP message is posted to a JMS queue, then SAP PI picks up the SOAP message, extracts the payload and maps it into an IDOC to SAP.
    Couple of questions...
    1. Does the JMS adapter supports SOAP over JMS?
    2. Can I get the entire SOAP envelope in SAP PI (just like the "do no use SOAP envelope" function works in the SOAP adapter) ?
    3. Is the above scenario possible? Given the fact that my scenario (i.e. ccBPM, mappings, etc..) is expecting a SOAP envelope as input?
    Thanks,
    Rob

    Ok, then I think I am on the right track, but still I cannot get this scenario to work.
    JMS (SOAP)-> SAP PI(ccBPM) --> IDOC
    I put SOAP messages on the sender queue, those messages dissapear from that queue, so I would expect that I can see them back in PI, but no trace is left behind in the monitoring area... It is like they've never been read from the input queue.
    What is happenning with those messages? The definition of the SOAP envelope has been uploaded as an external definition and linked to a message interface in the repository.
    JMS Communication channel checked but it is also fine.
    Any clues where to look?
    Thanks.

  • JMS, MQSeries 5.2 and Websphere 4.0.2

    How to configuring the WebSphere to work with MQSeries, Does anybody know how to do it.

    I am getting the following Exception when trying ti run JMSAdmin with
    INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
    PROVIDER_URL=IIOP://localhost:900/
    I Have websphere Advanced Single Server Edition
    01:39:01 [1019853541907] [P=533785:O=0:CT] com.ibm.mq.jms.admin.AdminService@690726 initJNDI() javax.naming.ServiceUnavailableException exception caught: NULL returned when resolving initial reference=NameService
    javax.naming.ServiceUnavailableException: NULL returned when resolving initial reference=NameService
         at com.ibm.ws.naming.util.WsnInitCtxFactory.getCosRootContext(WsnInitCtxFactory.java:476)
         at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:361)
         at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:227)
         at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:98)
         at com.ibm.ws.naming.util.WsnInitCtx.<init>(WsnInitCtx.java:79)
         at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContext(WsnInitCtxFactory.java:135)
         at com.ibm.websphere.naming.WsnInitialContextFactory.getInitialContext(WsnInitialContextFactory.java:80)
         at com.ibm.ejs.ns.jndi.CNInitialContextFactory.getInitialContext(CNInitialContextFactory.java:68)
         at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
         at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
         at javax.naming.InitialContext.init(Unknown Source)
         at javax.naming.InitialContext.<init>(Unknown Source)
         at com.ibm.mq.jms.admin.AdminService.initJNDI(AdminService.java:192)
         at com.ibm.mq.jms.admin.JMSAdmin.<init>(JMSAdmin.java:126)
         at com.ibm.mq.jms.admin.JMSAdmin.main(JMSAdmin.java:1176)

  • JMS-MQSeries without J2EE

    Hi,
    I tried to compile the SimpleTopicPublisher and SimpleTopicSubscriber from the following link. I used the javax.jms.jar and the jms.jar from sun.
    http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/client.html#1027256
    The code got compiled.
    I had a queue in MQSeries, its sample queue called postcard.
    When I tried running SimplePublisherTopic, the following exception was thrown:
    <code>
    D:\>java SimpleTopicPublisher postcard 1
    Topic name is postcard
    JNDI API lookup failed: javax.naming.NoInitialContextException: Need to specify
    class name in environment or system property, or as an applet parameter, or in a
    n application resource file: java.naming.factory.initial
    javax.naming.NoInitialContextException: Need to specify class name in environmen
    t or system property, or as an applet parameter, or in an application resource f
    ile: java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
    43)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav
    a:283)
    at javax.naming.InitialContext.lookup(InitialContext.java:350)
    at SimpleTopicPublisher.main(SimpleTopicPublisher.java:60)
    </code>
    The program is J2EE server independent. The MQSeries for Win 2000 is used for JMS services.
    Please help me in understanding the following :
    1) How to get the JNDI server running and registering our topic there?
    2) There was no reference of 'Topic' in MQSeries. There are only 'Queue'. If this is the case, how to create topics in MQSeries.
    3) Who are providers? There are JNDI provider and IBMMQSeries provider. What is to be used? Can they both be used?
    4) MQSeries has a Java API. Is it a replacement/substitute for Sun JMS API? Which should we use to write a generic JMS code?
    Thanks in advance,
    Rajesh

    I could solve some of the exceptions based on Steve's suggestions. I am giving below on how I solved.
    "JNDI API lookup failed: javax.naming.NoInitialContextException: "
    The SimpleTopicPublisher has set env property for InitialContext and expects our System's properties to specify the provider URL. I have added the property this way in code:
              try {
                   // Identify service provider to use
                   Hashtable env = new Hashtable(11);
                   env.put(Context.INITIAL_CONTEXT_FACTORY,
                                 "com.sun.jndi.fscontext.RefFSContextFactory");
                   env.put(Context.PROVIDER_URL,
                                 "file:/C:/Program Files/IBM/MQSeries/Java/lib");
                   jndiContext = new InitialContext(env);
              } catch (NamingException e) {
                        System.out.println("Could not create JNDI API " +
                             "context: " + e.toString());
                        e.printStackTrace();
                        System.exit(1);
              }1) How to get the JNDI server running and registering our topic there?
    Unlike RMI Naming server/registry, JNDI is a standard API for naming services. Hence it is not designed as a server listening on a port. I understand the File System based name space. The bindings of key-value is maintained in .bindings file in the place you specify as a PROVIDER_URL. Both publisher and subscriber has to refer this name space. This is how you start registering and retrieving MQ objects.
    3) Who are providers? There are JNDI provider and IBMMQSeries provider. What is to be used? Can they both be used?
    Providers are vendors who have implemented javax.naming.Spi package. The default provider you get from Sun is one reference implementation. It is "com.sun.jndi.fscontext.RefFSContextFactory". There is no IBM MQSeries provider. The same "com.sun.jndi.fscontext.RefFSContextFactory" is only supplied with MQSeries also.
    I don't know the answers for questions 2 and 4. I shall post it as soon as I understand.
    Those of you who read this, if you find deviation from righteouness, please correct.
    Thanks/Regards,
    Rajesh

  • Foreign JMS, MQSeries

    Hi,
              I am configuring Foreign JMS in weblogic 8.1.4 to communicate with MQSeries,
              and got following error when weblogic was started. When I configured JMS,
              just copied binding file to local direcotry (Windows XP professional) and
              confiured the the node <provider-url>file:/D:/jndi/</provider-url> in
              weblogic-ejb-jar.xml. I din't find any error when setup Foreign JMS server
              from weblogic console. But there is no class was bound to the desctination
              and facotry jndi in weblogic jndi tree. How I can bound the class object to
              destination and factory jndi.
              ####<Jan 20, 2006 7:40:12 PM CST> <Warning> <EJB> <wwhq728h> <marsJms>
              <ExecuteThread: '14' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <>
              <BEA-010061> <The Message-Driven EJB: SubscriberBean is unable to connect to
              the JMS destination: com.xxx.jms.subscriber.destination. The Error was:
              [EJB:011010]The JMS destination with the JNDI name:
              com.xxx.jms.subscriber.destination could not be found. Please ensure that
              the JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS
              destination has been deployed.>
              Thanks in advance for any idea.
              James

    Hi,
              I am configuring Foreign JMS in weblogic 8.1.4 to communicate with MQSeries,
              and got following error when weblogic was started. When I configured JMS,
              just copied binding file to local direcotry (Windows XP professional) and
              confiured the the node <provider-url>file:/D:/jndi/</provider-url> in
              weblogic-ejb-jar.xml. I din't find any error when setup Foreign JMS server
              from weblogic console. But there is no class was bound to the desctination
              and facotry jndi in weblogic jndi tree. How I can bound the class object to
              destination and factory jndi.
              ####<Jan 20, 2006 7:40:12 PM CST> <Warning> <EJB> <wwhq728h> <marsJms>
              <ExecuteThread: '14' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <>
              <BEA-010061> <The Message-Driven EJB: SubscriberBean is unable to connect to
              the JMS destination: com.xxx.jms.subscriber.destination. The Error was:
              [EJB:011010]The JMS destination with the JNDI name:
              com.xxx.jms.subscriber.destination could not be found. Please ensure that
              the JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS
              destination has been deployed.>
              Thanks in advance for any idea.
              James

  • JMS server communication

    Hi
    Iam new to JMS. Iam using Jboss as app server and ubermq as jms provider.
    My requirement is to use 2 jboss servers on two machines and one ubermq instance on another machine.
    changes made by imap client connected through one jboss server shall be notfied to imap client connected on another jboss. But it is not working.
    it is working fine for the clients connected on same jboss instance.
    I didn't understand how the remote server is identified by ubermq. Or i don't i misunderstood the jms communication mechanism
    Please help how to configure two jboss instances to one jms provider.
    Thanks

    I have 2 stand alone servers and I want them to send and receive messages to each other through JMS. Is uniform Distributed destination a good idea for the same?
    I heard that UDD requires a cluster to keep it running. Is that right?
    Also do let me know if we need separate licensing for JMS clustering?
    Thanks!

  • JMS bridge communication not working

    Hi,
    I am working on an application, Ap1, which uses Toplink as an ORM layer and also makes use of Toplink cache. The problem is that the database that this application uses
    is also used by another app, Ap2. So I need somehow to refresh Toplink cache of Ap1 when a database update is triggered by Ap2, otherwhise Ap1 will work with out of date data.
    The solution that I found is to use JMS for the communication between the 2 aps and it should work like this:
    - when Ap2 make a database update, it will add a message in a JMS topic that a MDB deployed on Ap1 listens to. And so the MDB will remove the entity from the cache.
    The thing is that A1 and A2 are deployed on different Weblogic servers so I need to have a remote JMS communication between the 2 servers.
    Ap1 is deployed on WLS1 (Weblogic 12C).
    Ap2 is deployed on WLS2 (Weblogic 11C).
    As solutions I tried to use a JMS bridge.
    on the WLS1 side I have created:
    - a JMS server, JmsServer-0
    - a JMS module, JmsModule
    - a local topic included in JmsModule and targeted to JmsServer-0
    - a ConnectionFactory included in JmsModule and targeted to JmsServer-0 (not sure if it is needed)
    - a JMS bridge with source and target configured OK (Bridge is in Active state)
    The outcome is that when Ap2 updates the database, I can see the message in Ap2 JMS server, but I can't see it in Ap1 JMS server even if the JMS bridge appears to be created OK, has state Active.
    I don't know why the message doesn't reach A1 JMS server and I don't know how to debug this problem. I am looking in the Jms Server, monitorring tab. Is there any other place Where I can get some useful info?
    I also tried using a JMS foreign server, but I had the same problem.
    Thanks for any suggestion!

    First of all, you can configure the MDB on WLS server1 to receive messages from a JMS destination that is running on WLS server2. You just need to provide the URL of the remote server.
    If you prefer using the messaging bridge, you can debug your bridge by turning on the bridge debugging flags.
    -Dweblogic.Debug.DebugMessagingBridgeStartup=true
    -Dweblogic.Debug.DebugMessagingBridgeRuntime=true
    -Dweblogic.Debug.DebugMessagingBridgeRuntimeVerbose=true
    Hope this helps.
    Dongbo

  • JMS MQSeries XA transaction

    Hi,
    Our requirement is to integrate the enqueueing of an
    MQSeries 5.1 message within an XA transaction which
    will be managed by Tuxedo. The other resource involved
    in the transaction will be an Oracle8i database which
    will be written to by a WeblogicEnterprise Java server.
    Ideally we would like to write to the queue within the
    same Java server, using the JMS for MQSeries patch.
    I've read that if you want to use WLE to coordinate
    then the anwer is that you must use the C/C++ interfaces
    to MQSeries as opposed to the Java/JMS interfaces, but I
    don't know if this is (still) the case.
    Has anyone tried a Java solution ?
    Thanks, Conor.

    Hi atheek1
    Thanks for the reply, it worked. Before I mark this question as answered, pls. answer the below queries (Thanks a lot!)
    1) Well, i just ticked transaction required and same transaction for response and it started working. I did not add routing options like you mentioned to QOS Exactly Once. Its working without it fine. So, my questions is what is the use of adding this QOS to exactly once. Is it mandatory?
    2) I have a couple of OSB services in which rollback is working automatically (XA JMS to JCA FTP Adapter) and (XA JMS to JCA DB adapter XA data source), here rollback works automatically. I dont have to tick transaction required. So my question is, when an XA based connection factory picks a message from the queue, a transaction is started at the container level. So why tick transaction required at the message flow level, when the weblogic has already initiated a transaction. Since you said that HTTP transport commits a transaction even if 500 or 404 occurs, it makes sense to tick is transaction required and same transaction for response in OSB proxy service. But the remaining scenarios work without these options. Hence will it be wise to say that these settings are only required for HTTP transport coz of the way it behaves (commits 404 and 500).
    Thanks

Maybe you are looking for

  • Shared Computer over Ethernet is creating read-only files and folders

    Hi, I have set up a ssecond mac connected to my G4 via ethernet connection. We are both using my mac as the main computter and both working from one folder on it. BUT when the second computer creates a folder or saves a job into this folder the permi

  • About the jmxi.jar, posible bug

    Hi: Im deploying a web app with oc4j, but im having problems with this library jmxi.jar. I dont have changed any file from the original downloaded file oc4j_extended_101310: I get this warning message: Warning: The source code of D:\OC4J\j2ee\home\ap

  • Mavericks, iTunes, tv shows are black - can't play with any player

    Oh no.  I installed Mavericks and now my bought TV shows won't play at all - the iTunes screen only shows a black frame. QuickTime and VLC both are black as well.  It's very strange. Is there an easy way, without having to do a wipe and reinstall, to

  • Can one use Mountain Lion on a G5 panther?

    I bought an older G5 iMac - in nice condition.  After some chasing around, I found an installation disk set for a reasonable amount - and that too some doing!  Now, I shall format and reinstall Panther to clear up certain issues.  After that is done,

  • How to manage route entries on user Mac laptop?

    Hi, I have several Mac's in a small office and one has route entries no other Mac show. How can I permanently rid these entries. I have restarted the router and then the Macs and this has not worked. My route table from a netstat has some of the foll