Distributed JMS Queues and Port Information

Hello,
          I am a reasonably inexperience WebLogic user, so forgive my ignorance.
          We are setting up a distributed JMS queue as a destination for messages being sent from our EAI server. The distribution will be across 2 servers in our QA environment and 3 servers in our production. We are using WebLogic Server 8.1.3 on an Windows 2003 environment.
          The people in our EAI environment need a port number on for the Queue in order to forward their messages to us. My question's are:
          1) Is the listen port for the Distributed Queue the same as the listen port for the Admin Server?
          2) If it is not, does it correspond to the listen port for the individual queues (which is the same between our environments)?
          3) If there is a third port in play, how does this get configured and where do I retreive this information?
          I appreciate any answers people are willing to give me on the issue.
          Thank you,
          Steven Enk
          Harley-Davidson Motor Company

Hi Steven,
          WebLogic JMS shares the same WebLogic port as other WebLogic services, regardless of whether or not the destinations are distributed.
          One way to determine which ports are configured for a particular WebLogic server is to look at the log for that server.
          Ports are usually configured to support multiple protocols, and typically, one uses the "t3" protocol for URLs (its the highest performer), but there are other options (such as "http" for tunneling).
          You can configure additional ports (beyond the "default" port(s)) using the "channel" feature - i think you can find channels under the "WebLogic server" tabs on the console.
          For a server or client to establish communication with a remote cluster, one need only specify a URL for any one of the server's within the remote cluster. J2EE JNDI name location transparancy and WebLogic RMI load balancing will usually take care of the rest, although some customers setup DNS to help with load balancing (by for example, configuing their DNS "round-robin" addresses).
          Best practice is for the administrative server to be restricted to administrative purposes only. This means the admin server typically (A) doesn't host JMS (or any other services or any applications) and (B) is not a member of a cluster. So typically you won't be able to access JMS using an admin server's URL.
          Tom

Similar Messages

  • Distribute JMS Queues and ConnectionFactories

    Hi,
              Iam using Queues with filestore as persistence type. The Queues ,Conextion Factories are configured on Server A and Server B . Both are on different IP's. The MDB's are deployed on both the servers.
              When a message is send from Server A to Server B the MDB listening on server B is not pickingup that message.
              I configured the queues as normal queues. Is there any attribute needs to set for the Queues or connectionfactories to share the session between servers. I have the same JNDI names for the Queues and ConnectionFactories.
              Highly appriciate if anyone can tell me the solution.
              Regards
              Manikyala
              

    Hi,
              I have lots of questions:
              Where is sent message going? Can you check statistics to
              confirm that the message was successfully sent to the
              desired queue?
              Is MDB B may not be deploying and then connecting to JMS
              successfully? (A successful deployment doesn't mean
              that the MDB is connected.) Check your server logs for
              Warning/Error messages.
              Are you using the distributed destination feature?
              Are the two servers in the same cluster?
              Did you make sure that:
              All JMS servers, WL servers, and WL JMS stores
              are named differently?
              Tom
              Manikyala wrote:
              > Hi,
              >
              > Iam using Queues with filestore as persistence type. The Queues ,Conextion Factories are configured on Server A and Server B . Both are on different IP's. The MDB's are deployed on both the servers.
              >
              > When a message is send from Server A to Server B the MDB listening on server B is not pickingup that message.
              >
              > I configured the queues as normal queues. Is there any attribute needs to set for the Queues or connectionfactories to share the session between servers. I have the same JNDI names for the Queues and ConnectionFactories.
              >
              > Highly appriciate if anyone can tell me the solution.
              >
              > Regards
              >
              > Manikyala
              

  • How to create JMS Queues and Topics - OAS 10.1.3?

    Hi,
    Is there a way to create JMS Queues and Topics via the command line for OAS 10.1.3, say through admin-client.jar ?
    I have read the "Managing Adminitered Objects" chapter from the "Oracle Containers for J2EE Resource Adapter" book and could not find the information I am looking for.
    Thanks.
    -Sachin

    Hi Sachin --
    In the 10.1.3.1 release, a set of new commands have been added to admin_client.jar to support the command line creation of JMS resources:
    -addJMSConnectionFactory -domain <domain> -jndiLocation <jndiLocation> [options]
    -removeJMSConnectionFactory -jndiLocation <jndiLocation>
    -getJMSConnectionFactories
    -addDestination -domain <domain> -name <name> -jndiLocation <jndiLocation> [options]
    -removeDestination -name <name> [options]
    -getDestinations
    You can read about it in the doc:
    http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28950/adminclient.htm#CHDDFJJA
    cheers
    -steve-

  • Determining Message Server Host and Port information

    Hi,
    I am working on the NWDS creating a Java WD application and I was told which Netweaver system I should work on but I was not told the Message Server Host  information neither the Port information. I ran transaction SM51 (right click->details)in the Netweaver system but the information it is not working. Even though I can telnet this server port if I go to the J2EE Engine window within the NWDS I do not see the green light. I just see "N/A". I also tried to deploy my application but I keep getting this message: "Cannot determine sdm host (is empty). Please configure your engine/sdm correctly".
    Please advice,
    Diego.

    Hi Diego,
    in order to see Message Server Host information and Port information go to SAP J2EE Engine start page: e.g. http://system-name:57100/index.html (use administrator pws).
    Then click on System Information, here on the top you can read the Message Server Host and Port.
    Hope this help you.
    Bye,
    Vito

  • J2EE client mapping in WL6 - continued : jms queues and topics

    How can one use "generic" (i.e. "java:comp/env/jms/myQueue") names in client
    code for jms queues and topics,
    since neither application-client.xml nor WL's myjarname.runtime.xml
    have elements for them ?
    I mean, jms managed objects are not env-entries (application-client.dtd
    specifies that only primitive wrapper types can be valid env-entry-value)
    nor resources (which I understand are all connection factories, for jdbc,
    jms or mail ...).
    In my ejb-jar.xml I use the resource-env-ref element :
    <resource-env-ref>
    <resource-env-ref-name>jms/CreationErrorQueue</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
    </resource-env-ref>
    which can be mapped in weblogic-ejb-jar.xml
    <resource-env-description>
    <res-env-ref-name>jms/CreationErrorQueue</res-env-ref-name>
    <jndi-name>jms.aregon.CreationErrorQueue</jndi-name>
    </resource-env-description>
    but I don't know how to map the jndi of such objects in a client
    application.
    Edo

    Hi Sachin --
    In the 10.1.3.1 release, a set of new commands have been added to admin_client.jar to support the command line creation of JMS resources:
    -addJMSConnectionFactory -domain <domain> -jndiLocation <jndiLocation> [options]
    -removeJMSConnectionFactory -jndiLocation <jndiLocation>
    -getJMSConnectionFactories
    -addDestination -domain <domain> -name <name> -jndiLocation <jndiLocation> [options]
    -removeDestination -name <name> [options]
    -getDestinations
    You can read about it in the doc:
    http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28950/adminclient.htm#CHDDFJJA
    cheers
    -steve-

  • I want to use ODI to read XML messages from JMS queue and then process it..

    I want to use oracle ODI (Oracle Data Integrator) to read XML messages from JMS queue and then process it.. i also want to process and validate the data in it....
    Could anyone please tell me the steps to achieve the same. I tried some ways which i got on OTN, but not able to implement it exactly...
    As i m very new to ODI, it will be great if you provide detailed steps..
    Thanks in advance for your help....

    Hi,
    Were you able to do it? We are facing this same issue now and, despite the fact the docs say otherwise, it does not seem to be a trivial task.
    TIA,
    Tedi

  • Sending message to a JMS queue and making DB update through a single container managed transaction

    Can we use container managed transactions to send message to JMS queue and make DB updates in a sigle transaction. If yes then do we need 2pC license. I am using weblogic 6.0 SP2 and my database driver do not supports XA

    If your JMS provider is XA compliant, you can.
    If you are using WebLogic 6.0 JMS, it supports 2PC.
    The JDBC resource that does not support XA can participate in the global transaction
    creating a TXDataSource and setting "enable two-phase commit"=true in the Configuration
    panel.
    About the JMSConnectionFactory, on the console, in WebLogic 6.0, in the "Transaction"
    tab folder, set "User Transactions Enabled"=true.
    In your code, use non-transacted sessions.
    For 2pc protocol, you need a license or you'll get an exception.
    Sergi
    Manoj Bansal <[email protected]> wrote:
    Can we use container managed transactions to send message to JMS queue and
    make DB updates in a sigle transaction. If yes then do we need 2pC license.
    I am using weblogic 6.0 SP2 and my database driver do not supports XA

  • Reading Opaque data from jms queue  and decoded  in java embedding

    Hi ,
    Objective:Fetch text message from queue and print it from java embedding in BPEL
    I am fetching text message from a jms queue using JMS adapter in BPEL.Then converting the opaque data(Base64 binary)to string using java embedding.My build got successful but I am getting runtime error at the time of deployment.
    I have added fabric-runtime.jar file into SCA-INF\lib folder as well as project library directory.
    <extensionActivity>
    <bpelx:exec name="Java_Embedding1" version="1.5" language="java">
    <bpelx:exec import="java.io.*"/>
    <bpelx:exec import="oracle.soa.common.util.Base64Decoder"/>
    <![CDATA[//Write your java code below e.g.        
         System.out.println("Hello, World");       
    //   String input = ((Element)getVariableData("Receive1_Consume_Message_InputVariable")).getTextContent();              
      // String inputName = (String)getVariableData("input");     
      String input = (String)getVariableData("Receive1_Consume_Message_InputVariable");            
    //Receive1_Consume_Message_InputVariable.opaque          
          System.out.println("input:"+input);          
          addAuditTrailEntry(input);           
          Base64Decoder Decoder = new Base64Decoder();             
         try {            
          String decoded = Base64Decoder.decode(input);            
          setVariableData("Variable_opaque_decoded",decoded);            
          addAuditTrailEntry(decoded);           
    catch(UnsupportedEncodingException uee)
    uee.printStackTrace();
    }]]>
    </bpelx:exec>
    </extensionActivity>
    Error:
    Error deploying archive sca_JMSToDBInsert_rev1.0.jar to partition "default" on server AdminServer [http://localhost:7001]
    HTTP error code returned [500]
    Error message from server:
    There was an error deploying the composite on AdminServer: Error occurred during deployment of component: BPELProcess1 to service engine: implementation.bpel, for composite: JMSToDBInsert: ORABPEL-05250
    Error deploying BPEL suitcase.
    error while attempting to deploy the BPEL component file "C:\Oracle\Middleware\user_projects\domains\soa_domain\servers\AdminServer\dc\soa_0fb06e23-bac3-4753-aae9-0fc4b54b4dd1"; the exception reported is: java.lang.RuntimeException: failed to compile execlets of BPELProcess1
    This error contained an exception thrown by the underlying deployment module.
    Verify the exception trace in the log (with logging level set to debug mode).
    Check server log for more details.
    Error deploying archive sca_JMSToDBInsert_rev1.0.jar to partition "default" on server AdminServer [http://localhost:7001]
    #### Deployment incomplete. ####
    Error deploying archive file:/C:/SOA Suite/SOA_POC/Client2JMSapps/Client2JMSapps/JMSToDBInsert/deploy/sca_JMSToDBInsert_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)
    Could you guys please help me regarding this?
    Thanks & Regards,
    Souvik
    Edited by: Souvik Pal on Apr 16, 2012 9:40 PM

    You probably want to try the SOA Suite forum for OSB questions.
    SOA Suite
    There is an excellent book also:
    http://jeffdavies.org/
    The documentation goes over the fundamentals, but the book will be better for step by step examples.

  • Access "Host"  and port information

    Hi,
    Is there a way to access host name and port number (http://<servername>:<port>) programmatically.
    Regards,
    Naveen

    Hi Naveen,
    The portal sets a cookie on the user's desktop that includes a number that corresponds to the physical portal server that you're connected to and the portal server node. The name of this cookie is saplb_*. One way to examine the value of this cookie is to log into the portal and then type the following command in your address line:
    javascript:alert(document.cookie);
    This will cause a box to pop up containing a list of your cookies. The value of your saplb_* cookie will look something like this:
    saplb_*=(J2EE1233000)1233050;
    The number that you want is after the end parenthesis. In other words, you want 1233050. Now, navigate to:
    Java Developer -> Portal Archive Deployer & Remover
    Look in the 'Cluster Administration' area. This section contains Server ID, Server Name, Server Type, and Server IP. Look for your 1233050 number in the Server ID area, and then find that line's corresponding IP Address. You then do an NSLookup with that IP Address and there you will have your hostname.
    From what I understand, all of the data in that Cluster Administration page is static. In other words, it will not change. I have made a jsp to grab that cookie's value and then translate that into the hostname. I've hardcoded the data from the Cluster Administration page into my jsp. Also, this data did not change after we upgraded from EP6 to EP7.
    I hope this helps!
    -StephenS

  • Get jms queue and topic names from JNDI

    Hello all,
    How do I get all possible queue and Topic names from JNDI (in my app) so I can store them in a HashMap?
    Thanks

    I'm guessing you know where in the JNDI you put your queue and topic names. Then you can do:
    context.listBindings("myJNDIContext");
    and go through the NamingEnumeration that this returns.

  • Configuration for JMS Adapter Sensor action and JMS Queue sensor action..!!

    Hi,
    Id like my BPEL process to send an XML message to JMS on Websphere,I was able to do this through a JMS adapter.But I would more like to add sensors into my process which would really do the same thing - send an XML message to JMS Q.
    Now I understand that there are two ways to do this,JMS Queue and JMS Adapter - thorugh bpel sensor action.
    I am able to use JMS Queue and it works fine , but adds its own xml tags to the message,Is there any way I could send only my xml payload as a message to the queue??
    Also could any1 tell me what is the configuration for JMS Adapter sensor action?
    Any suggestions how do I go about it??

    Hey Anirudh,
    Thanx for the response :-)
    All these hold good when I have an AQ adaptor right,But the thing is I want to send a message to a 'JMS' queue with out actually using an adapter configuration wizard and everythng..So I resolved to JMS queue Sensor action..Heres the xml snippet from the sensorAction.xml files which is generated..
    <actions targetNamespace="http://xmlns.oracle.com/Test_JMS_Logging" xmlns="http://xmlns.oracle.com/bpel/sensor" xmlns:tns="http://xmlns.oracle.com/Test_JMS_Logging" xmlns:pc="http://xmlns.oracle.com/bpel/sensor">
    <action name="JMS_LogEntry" publishName="" publishType="JMSQueue" enabled="true" filter="" publishTarget="jms/L_Queue">
    <property name="JMSConnectionFactory">jms/L_QueueCF</property>
    <sensorName>ActivitySensor_JMS</sensorName>
    </action>
    </actions>
    This works grt and adds messages to the queue..But adds its own header info according to the sensor.xsd loacted at the Oracle_home\bpel\system\xmllib\ folder.
    Right now the XML message added to the Queue is:-
    <actionData xmlns="http://xmlns.oracle.com/bpel/sensor">
    <header>
    <sensor sensorName="ActivitySensor_JMS" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="AddLEntr
    y" xmlns:pc="http://xmlns.oracle.com/bpel/sensor" xmlns:ns2="http://www.ulrhome.com/2008/10/L_Entry" xmlns:tns="http://xmlns.oracle.com/Test_JMS">
    <activityConfig evalTime="completion">
    <variable outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema" target="$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName"/>
    </activityConfig>
    </sensor>
    <instanceId>950016</instanceId>
    <processName>Test_JMS</processName>
    <processRevision>v2009_04_15__40833</processRevision>
    <domain>default</domain>
    <timestamp>2009-04-15T11:21:23.596-04:00</timestamp>
    <midTierInstance>app01.ulrhome.com:9700</midTierInstance>
    </header>
    <payload>
    <activityData>
    <activityType>scope</activityType>
    <evalPoint>completion</evalPoint>
    <durationInSeconds>0.011</durationInSeconds>
    <duration>PT0.011S</duration>
    </activityData>
    <variableData>
    <dataType>12</dataType>
    <data>
    <ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
    </data>
    <queryName/>
    <target>$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName</target>
    <updaterName>AddL_Entry</updaterName>
    <updaterType>scope</updaterType>
    </variableData>
    </payload>
    </actionData>
    My requirement is that I need to add a sensor to the BPEL process which posts 'Only my payload message to the JMS queue'..
    What I would want the message in the Queue to be is : -
    <data>
    <ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
    </data>
    Also while creating a Sensor action I get another option as JMS Adaptor,I am not sure of what value to type in this wizard..Heres what I keyed in..M sure this is not right..Cos it dosnt work :-)
    <action name="SensorAction_JMS" publishName="" publishType="JMSAdapter" enabled="true" filter="" publishTarget="jms/LoggingQueue">
    <property name="JMSConnectionName">Log</property>
    </action>
    </actions>
    Could any 1 tel me what values are the right values..And does JMS Adapter mean that I have to create a JMS Apator in the project and give that connection name as a Value..
    I am not finding sufficiant Documentation for 'JMS Adapter' so M clueless and right now any help will be appriciated :-)
    Regards,
    Akshatha.

  • Making DB updates and sending message to JMS queue enclosed in a single transaction

              using a container managed transactions can we achieve sending a message to the JMS
              queue and updating DB as part of single transaction with the data base driver not
              supporting XA. If yes what all configurations setting I need to do. I tried to achieve
              this using 2PC but I am getting the error that "javax.transaction.xa.XAException:
              JDBC driver does not support XA, hence cannot be a participant in two-phase commit.
              To force this participation, set the enableTwoPhaseCommit property on the corresponding
              JDBCTxDataSourceproperty, to true. Pool = ejbPool".
              

    As far as I know, your only options is to do as the exception you cut-and-pasted below
              states:
              "To force this participation, set the enableTwoPhaseCommit property on the corresponding
              JDBCTxDataSourceproperty, to true. Pool = ejbPool"
              The "enableTwoPhaseCommit" property has definite drawbacks
              see the javadoc and/or documentation for configuring
              a "JDBCTxDataSource".
              This problem is specific to non-XA resources in general, not JMS (which is an XA resource),
              you may wish to get more info by posting to the transaction newsgroup.
              Tom
              Manoj Bansal wrote:
              > using a container managed transactions can we achieve sending a message to the JMS
              > queue and updating DB as part of single transaction with the data base driver not
              > supporting XA. If yes what all configurations setting I need to do. I tried to achieve
              > this using 2PC but I am getting the error that "javax.transaction.xa.XAException:
              > JDBC driver does not support XA, hence cannot be a participant in two-phase commit.
              > To force this participation, set the enableTwoPhaseCommit property on the corresponding
              > JDBCTxDataSourceproperty, to true. Pool = ejbPool".
              

  • Fetching and inserting back to JMS queue

    hai,
    I want to check which all queues are active......So whenever a queue comes i am putting that in active queue list........so if any case the message cannot be sent then that queue will be active.....so i want to find the number of attempts made by the queue......i have set one variable in the queue object......so whenever one attempt is made i have to fetch the object from the queue, increment the variable and put it back to the queue......So how can i do that.......Is there any other alternate way to find the number of attempts made by a queue....Please help
    Sreenivasan

    As far as I know, your only options is to do as the exception you cut-and-pasted below
              states:
              "To force this participation, set the enableTwoPhaseCommit property on the corresponding
              JDBCTxDataSourceproperty, to true. Pool = ejbPool"
              The "enableTwoPhaseCommit" property has definite drawbacks
              see the javadoc and/or documentation for configuring
              a "JDBCTxDataSource".
              This problem is specific to non-XA resources in general, not JMS (which is an XA resource),
              you may wish to get more info by posting to the transaction newsgroup.
              Tom
              Manoj Bansal wrote:
              > using a container managed transactions can we achieve sending a message to the JMS
              > queue and updating DB as part of single transaction with the data base driver not
              > supporting XA. If yes what all configurations setting I need to do. I tried to achieve
              > this using 2PC but I am getting the error that "javax.transaction.xa.XAException:
              > JDBC driver does not support XA, hence cannot be a participant in two-phase commit.
              > To force this participation, set the enableTwoPhaseCommit property on the corresponding
              > JDBCTxDataSourceproperty, to true. Pool = ejbPool".
              

  • How to create a JMS queue linked to external (remote) JMS server?

    Hello,
    I'm trying to receive messages from a remote JMS queue. I found some information on the Internet on how to create an external JNDI resource (my remote JMS queue connection factory is bound to LDAP context on remote box). I was able to configure JNDI resource that points to remote queue connection factory, but I don't know what to do next.
    How can I create a local JMS destination (queue) that will be the image of the remote queue? At least I'm guessing this is what needs to be done in order to deploy MDBs.
    I would appreciate it if someone could tell me how to get this working. Maybe the steps I took were not in the right direction - the bottom line is that JMS queue and queue connection factory are deployed on a remote server, and I need to get messages sent to them on the local server. I'm using Sun App Server from J2EE 1.4.
    Thank you,
    Mark

    Please refer to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6377822, particularly the evaluation. Could your situation be the same too (i.e server ip address changing dynamically)? Also, which OS are you using and do you have any firewalls setup that prevents access to port 3700?

  • Help needed on JMS queues

    I am using Soa Suite 10.1.35 and trying to make a ESB integration work.
    The requirement is I have to de-queue some data from a JMS queue and invoke a Oracle Pl/SQL Api(DB adapter) using the data in an ESB project.
    I want it part of a single transaction, i.e. if the call to oracle API(db adapter ) fails( say db is down or api is invalid), i want the queue de-queue transaction to be rolled back as well.
    I have made the routing service as synchronous. I have marked istransacted ="true" connection factory in oc4j-ra.xml file and auto_commit =>false for the Queue table, queue creation.
    Still if the DB transaction fails the queue is not rolled back.
    Any help or pointers will be greatly appreciated.
    Please let me know if you require any information.
    Regards,
    Punit

    I tried compling servlet, but it is raising error
    that coul not find package javax.servletWhat I did not mention... you need to add those JARs in the Classpath explicitly. You will find them in %TOMCAT_HOME%\common\lib. You atleast need to add servlet-api.jar to your Classpath. :)

Maybe you are looking for