JMS proxy and XA connection factory

Hi all,
I would like to ask you what is the best practice to adopt about the scenario described below.
A JMS proxy retrieves a message and processes it.
Any error could occurr during processing it and, in case of errors, the JMS proxy error handler publishes the message on ad hoc recovery destination D.
(later another app will check failed messages for fixing & republishing them into ALSB).
In that scenario we have the JMS proxy and the jms business service that, in case of errors, publishes on destination D.
Should the JMS proxy and the business service use both a XA connection factory in order to perform all the above steps in one transaction ?
Otherwise if the business service itself fails publishing on destination D, the message retrieved by the JMS proxy is lost and not re-delivered to the JMS proxy.
Or XA connection factory is not needed and could I use
Routing Options with exactly once or both are needed ?
Thanks
ferp

Hi all,
I did some tests and follow what I've achieved.
Scenario 1.
- Precondition
-- A JMS proxy with XA factory + Error Destination (MyRecoveryQueue)
-- A business service BS with XA factory that publishes into MyOutboundQueue
-- No "exactly once" routing option used calling BS
-- an error is forced in the pipeline
- Flow
-- proxy retrieves a message and try to publish it using BS
-- an error is forced in the pipeline:
--- transaction is rolled back, message redelivered to proxy
--- the message is posted to the error destination after all the retries failed
Scenario 2.
- Precondition
-- As 1. but no error is forced in the pipeline
-- the MyOutboundQueue destination queue is paused
- Flow
-- proxy retrieves a message and try to publish it using BS
-- BS fails to publish it on MyOutboundQueue (because it is paused)
--- transaction is rolled back, message redelivered to proxy
--- the message is posted to the error destination after all the retries failed
Scenario 2A.
- Precondition
-- As 2. with MyOutboundQueue paused and resumed
- Flow:
-- proxy retrieves a message and try to publish it using BS
-- BS fails to publish it on MyOutboundQueue (because it is paused)
--- transaction is rolled back, message redelivered to proxy
--- before all the retries failed the queue is resumed
--- BS succeeds to publish the message
Scenario 3.
- Precondition
-- A JMS proxy with NO XA factory + Error Destination
-- A business service BS with NO XA factory
-- No "exactly once" routing option used calling BS
-- an error is forced in the pipeline
- Flow
-- proxy retrieves a message and try to publish it using BS
-- an error is forced in the pipeline:
--- transaction is NOT rolled back, message NOT redelivered to proxy
-- so
--- no message delivered to MyOutboundQueue2 destination
--- no message delivered to MyRecoveryQueue2 destination
--- message consumed from MyQueue2 and now is lost!
To publish message into MyRecoveryQueue2 a proxy error handler has to be added and here added explicit publish to MyRecoveryQueue2.
But naturally in that case if in the proxy error handler, the explicit publish fails or any error occurrs no message is delivered to recovery queue.
So if I'm not using an XAFactory the message is auto-acknowledged as soon as it is read and I've to use XA factory if I want the message to be put back in the queue in case of errors and the retry to happen.
So both my proxy service and business service use an XA factory.
Regards
ferp

Similar Messages

  • Problem with Java Proxy and Socket Connection

    Hi Gurus!!
    I have developed a Java Proxy that connects via socket with a Server Socket application. This Server Socket application accepts more than one connection at the same time.
    When I connect the first time from my Java Proxy, the connection is correctly established. When the first connection opened, if a try a second connection, this is not established.
    I use "new Socket(SocketServer,SocketPort);" to open the connection.
    I think that all time the Java Proxy is trying to open the same connection, and this is a problem.
    Is there a way to indicate to the server that is a new connection and that the existing connections remain?
    Anybody could help me, please?
    Thanks and regards,
    Manuel Míguez.

    Sorry!!!!i must give you more information.
    The error which i have when i push the submit button is
    HTTP Status 404 -
    type Status report
    message
    descriptionThe requested resource () is not available.
    GlassFish Server Open Source Edition 3.0.1
    My thought is that the error is in this line
    String connectionURL = "jdbc:mysql://localhost/mybooking";in mysql when i write this code then the table opens with no problems:
    mysql>show databases;
    mysql>usebooking;
    mysql>showtables;
    mysql>describe booking;Furthermore i have added in my web application the library mysql JDBC driver my-sql-connector-java-5.1.6.bin.jar
    Edited by: 813355 on Nov 22, 2010 1:50 AM
    Edited by: 813355 on Nov 22, 2010 2:00 AM

  • OSB call to remote Web Service via https proxy and https CONNECT problem

    Hi
    I have a service that calls a web service on another server as a web service. This call is via https and the certificate validation raises no errors.
    I now want this call to go via a squid httpd proxy on port 3128 on some machine. So I would like to use HTTP CONNECT (RFC 2817) proxying,. But when I set up this as a proxy, I am getting "Certificate chain" error messages. The certifcate chains is no different now from when I called without the http proxy, so what am I doing wrong? Does OSB support HTTP CONNECT?
    -Johan

    The exeption we are getting is BEA-380000
    General runtime error: [Security:090477]Certificate chain received from XXX - 123.123.123.123 --> test.salesforce.com was not trusted causing SSL handshake failure.
    This is of course not relevant if the callout were using CONNECT. In the CONNECT scenario, OSB would not care about XXX's certificate.

  • Apache Reverse Proxy and Adobe Connect

    Hi all,
    I need to expose Adobe Connect to internet. Our client uses it with SAP's Learning Solution. I achieved to expose main page but I couldnt expose Rooms. When I click Room link (http://adobe.mydomain.com/dene/?launcher=false) it opens but room not loading.
    Any idea with this?

    Ok I gave up Apache. Now the Adobe Connect Server is in DMZ! But still no rooms open!

  • Load balancing MQ 7.0 Foreign JMS Server and Weblogic 10 MDBs?

    We have the following configuration and we are trying to troubleshoot what appears to be a load balancing issue.
    We have 3 Solaris servers. Each Solaris server has two Weblogic managed servers running on it. There are a total of 6 managed servers in the Weblogic cluster.
    MQ Series 7.0 is also installed on each Solaris server. The MQ queue managers are in a MQ cluster. Each queue manager has the same queues defined.
    We have a foreign JMS Server configured on Weblogic that has destinations and a connection factory defined. There aren't many configuration options available for the connection factory. The destinations are bound to the queues defined on MQ using the MQ bindings file.
    The MQ bindings file was generated using the TRANSPORT(BIND) mechanism. Each bindings file points to the queue manager running on that machine. So the 2 managed servers running on one machine are accepting messages from the queue manager on that machine.
    The MDB's listenning for messages on the MQ queues are configured as follows in the weblogic-ejb-jar.xml:
         <max-beans-in-free-pool>16</max-beans-in-free-pool>
    We also created a custom work manager with min threads constraint=5 and max threads constraint=16. The dispatch-policy of all the MDBs is set to the custom work manager.
    The open input count on each MQ queue managers shows up as 32 which is expected.
    The default load algorithm on the cluster is round-robin.
    When we run a load test (injecting 40 messages per second on one MQ queue), we notice that one managed server ends up being significantly loaded than the other. Each MQ queue manager in the MQ cluster receives approximately the same number of messages in the load test. But it seems like one managed server is preferred over the other in Weblogic.
    What can be done to equally balance the load among the two managed servers on each Solaris server?
    Thanks for the help.

    Load balancing generally applies at determing how many consumer threads has to be created on each of the clustered queue instance. In that sense you have achieved perfect load balancing as your queue instances has the same no of consumer threads.
    Once you have set 'x' consumer threads on a queue, it is upto messaging provider to decide which thread to deliver a particular message and you will hardly have any control over this. Since your 32 threads are listening on the same queue, MQ can select any thread for delivering the message and the behaviour could be non deterministic.
    One option to change your design is to have a dispacther mdb which picks the messages off the MQ and then routes to a weblogic distributed destination and you can have your core mdb which does all processing listen to this distributed destination. You can enable load balancing when the disaptcher mdb routes the message to the distributed destination. Since dispatcher MDB is nothing more than a router, the unbalanced consumption off the MQ shouldn't seriously affect the server.

  • JMS Exception - unable to connect to the JMS destination

    Hi,
    I've configured WebLogic10R3 Cluster with one Admin Server and 2 Managed Servers.
    I deployed the application to the Cluster. (Ie. both Managed 1 and Managed Server 2.)
    I am geeting the following JMS destination not found exception while starting the Second Managed Server.
    There are no errors occurred in the First Managed Server.
    {color:#ff0000}&lt;Warning&gt; &lt;EJB&gt; &lt;BEA-010061&gt;
    &lt;The Message-Driven EJB: SysAuditLogger is unable to connect to the JMS destination: topic/efpAuditTopic.
    The Error was: weblogic.jms.common.JMSException: could not find Server efpserver_man2
    Nested exception: weblogic.jms.common.JMSException: could not find Server efpserver_man2
    Nested exception: weblogic.jms.common.JMSException: could not find Server efpserver_man2
    Nested exception: weblogic.jms.common.JMSException: could not find Server efpserver_man2
    Nested exception: weblogic.messaging.dispatcher.DispatcherException: could not find Server efpserver_man2
    Nested exception: javax.naming.NameNotFoundException: Unable to resolve 'weblogic.messaging.dispatcher.S:efpserver_man2.
    Resolved 'weblogic .messaging.dispatcher'; remaining name 'S:efpserver_man2&gt;{color}
    Configuration Details:
    ##config.xml:
    &lt;?xml version='1.0' encoding='UTF-8'?&gt;
    &lt;domain xmlns="http://www.bea.com/ns/weblogic/920/domain" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90/security/wls [http://www.bea.com/ns/weblogic/90/security/wls.xsd] [http://www.bea.com/ns/weblogic/920/domain] [http://www.bea.com/ns/weblogic/920/domain.xsd] [http://www.bea.com/ns/weblogic/90/security/xacml] [http://www.bea.com/ns/weblogic/90/security/xacml.xsd] [http://www.bea.com/ns/weblogic/90/security] [http://www.bea.com/ns/weblogic/90/security.xsd]"&gt;
    &lt;name&gt;efpdomain&lt;/name&gt;
    &lt;domain-version&gt;10.3.0.0&lt;/domain-version&gt;
    &lt;security-configuration&gt;
    &lt;name&gt;efpdomain&lt;/name&gt;
    &lt;realm&gt;
    &lt;sec:authentication-provider xsi:type="wls:default-authenticatorType"&gt;&lt;/sec:authentication-provider&gt;
    &lt;sec:authentication-provider xsi:type="wls:default-identity-asserterType"&gt;
    &lt;sec:active-type&gt;AuthenticatedUser&lt;/sec:active-type&gt;
    &lt;/sec:authentication-provider&gt;
    &lt;sec:role-mapper xmlns:xac="http://www.bea.com/ns/weblogic/90/security/xacml" xsi:type="xac:xacml-role-mapperType"&gt;&lt;/sec:role-mapper&gt;
    &lt;sec:authorizer xmlns:xac="http://www.bea.com/ns/weblogic/90/security/xacml" xsi:type="xac:xacml-authorizerType"&gt;&lt;/sec:authorizer&gt;
    &lt;sec:adjudicator xsi:type="wls:default-adjudicatorType"&gt;&lt;/sec:adjudicator&gt;
    &lt;sec:credential-mapper xsi:type="wls:default-credential-mapperType"&gt;&lt;/sec:credential-mapper&gt;
    &lt;sec:cert-path-provider xsi:type="wls:web-logic-cert-path-providerType"&gt;&lt;/sec:cert-path-provider&gt;
    &lt;sec:cert-path-builder&gt;WebLogicCertPathProvider&lt;/sec:cert-path-builder&gt;
    &lt;sec:name&gt;myrealm&lt;/sec:name&gt;
    &lt;/realm&gt;
    &lt;default-realm&gt;myrealm&lt;/default-realm&gt;
    &lt;credential-encrypted&gt;{3DES}hcdd+yZGXk5DHgRKqCM7E86l4+VxPcZ9Ut7rB6WaXqMyvbtDjDUKNCKbMQdCN/BEYCv5E0N4Hms9kntfqhaduDO1WGMtbmJL&lt;/credential-encrypted&gt;
    &lt;node-manager-username&gt;weblogic&lt;/node-manager-username&gt;
    &lt;node-manager-password-encrypted&gt;{3DES}Q2xO0EiChbay/HkRiorTjg==&lt;/node-manager-password-encrypted&gt;
    &lt;/security-configuration&gt;
    &lt;server&gt;
    &lt;name&gt;AdminServer&lt;/name&gt;
    &lt;listen-address&gt;192.168.12.240&lt;/listen-address&gt;
    &lt;/server&gt;
    &lt;server&gt;
    &lt;name&gt;efpserver_man1&lt;/name&gt;
    &lt;listen-port&gt;8011&lt;/listen-port&gt;
    &lt;cluster&gt;efpcluster&lt;/cluster&gt;
    &lt;listen-address&gt;192.168.12.240&lt;/listen-address&gt;
    &lt;xml-registry&gt;XMLEFP&lt;/xml-registry&gt;
    &lt;jta-migratable-target&gt;
    &lt;user-preferred-server&gt;efpserver_man1&lt;/user-preferred-server&gt;
    &lt;cluster&gt;efpcluster&lt;/cluster&gt;
    &lt;/jta-migratable-target&gt;
    &lt;/server&gt;
    &lt;server&gt;
    &lt;name&gt;efpserver_man2&lt;/name&gt;
    &lt;listen-port&gt;8012&lt;/listen-port&gt;
    &lt;cluster&gt;efpcluster&lt;/cluster&gt;
    &lt;listen-address&gt;192.168.12.240&lt;/listen-address&gt;
    &lt;xml-registry&gt;XMLEFP&lt;/xml-registry&gt;
    &lt;jta-migratable-target&gt;
    &lt;user-preferred-server&gt;efpserver_man2&lt;/user-preferred-server&gt;
    &lt;cluster&gt;efpcluster&lt;/cluster&gt;
    &lt;/jta-migratable-target&gt;
    &lt;/server&gt;
    &lt;cluster&gt;
    &lt;name&gt;efpcluster&lt;/name&gt;
    &lt;cluster-address&gt;192.168.12.240:8011,192.168.12.240:8012&lt;/cluster-address&gt;
    &lt;multicast-address&gt;239.192.0.0&lt;/multicast-address&gt;
    &lt;/cluster&gt;
    &lt;embedded-ldap&gt;
    &lt;name&gt;efpdomain&lt;/name&gt;
    &lt;credential-encrypted&gt;{3DES}q/XQGirHcAcgi4iwPiXIkRHP8xte4xVBgJwjM+qMwbk=&lt;/credential-encrypted&gt;
    &lt;/embedded-ldap&gt;
    &lt;configuration-version&gt;10.3.0.0&lt;/configuration-version&gt;
    &lt;app-deployment&gt;
    &lt;name&gt;efp&lt;/name&gt;
    &lt;target&gt;efpcluster&lt;/target&gt;
    &lt;module-type&gt;ear&lt;/module-type&gt;
    &lt;source-path&gt;applications\efp.ear&lt;/source-path&gt;
    &lt;security-dd-model&gt;DDOnly&lt;/security-dd-model&gt;
    &lt;/app-deployment&gt;
    &lt;xml-registry&gt;
    &lt;name&gt;XMLEFP&lt;/name&gt;
    &lt;document-builder-factory&gt;weblogic.apache.xerces.jaxp.DocumentBuilderFactoryImpl&lt;/document-builder-factory&gt;
    &lt;sax-parser-factory&gt;weblogic.apache.xerces.jaxp.SAXParserFactoryImpl&lt;/sax-parser-factory&gt;
    &lt;transformer-factory&gt;weblogic.apache.xalan.processor.TransformerFactoryImpl&lt;/transformer-factory&gt;
    &lt;/xml-registry&gt;
    &lt;jms-server&gt;
    &lt;name&gt;eFpJMSServer&lt;/name&gt;
    &lt;target&gt;efpserver_man1 (migratable)&lt;/target&gt;
    &lt;persistent-store&gt;eFpJMSJDBCStore&lt;/persistent-store&gt;
    &lt;/jms-server&gt;
    &lt;jms-server&gt;
    &lt;name&gt;eFpJMSServer2&lt;/name&gt;
    &lt;target&gt;efpserver_man2 (migratable)&lt;/target&gt;
    &lt;persistent-store&gt;eFpJMSJDBCStore2&lt;/persistent-store&gt;
    &lt;/jms-server&gt;
    &lt;migratable-target&gt;
    &lt;name&gt;efpserver_man1 (migratable)&lt;/name&gt;
    &lt;notes&gt;繧キ繧ケ繝・&Beta;逕滓・縺ォ繧医k繝・ヵ繧ゥ繝ォ繝医・繧オ繝シ繝千畑遘サ陦悟庄閭ス蟇セ雎。縺ァ縺吶€よ焔蜍輔〒蜑企勁縺励&uarr;縺・〒縺上□縺輔>縲・/notes&gt;
    &lt;user-preferred-server&gt;efpserver_man1&lt;/user-preferred-server&gt;
    &lt;cluster&gt;efpcluster&lt;/cluster&gt;
    &lt;/migratable-target&gt;
    &lt;migratable-target&gt;
    &lt;name&gt;efpserver_man2 (migratable)&lt;/name&gt;
    &lt;notes&gt;繧キ繧ケ繝・&Beta;逕滓・縺ォ繧医k繝・ヵ繧ゥ繝ォ繝医・繧オ繝シ繝千畑遘サ陦悟庄閭ス蟇セ雎。縺ァ縺吶€よ焔蜍輔〒蜑企勁縺励&uarr;縺・〒縺上□縺輔>縲・/notes&gt;
    &lt;user-preferred-server&gt;efpserver_man2&lt;/user-preferred-server&gt;
    &lt;cluster&gt;efpcluster&lt;/cluster&gt;
    &lt;/migratable-target&gt;
    &lt;jdbc-store&gt;
    &lt;name&gt;eFpJMSJDBCStore&lt;/name&gt;
    &lt;prefix-name&gt;WLJMS_&lt;/prefix-name&gt;
    &lt;data-source&gt;eFpNonXADataSource&lt;/data-source&gt;
    &lt;target&gt;efpserver_man1 (migratable)&lt;/target&gt;
    &lt;/jdbc-store&gt;
    &lt;jdbc-store&gt;
    &lt;name&gt;eFpJMSJDBCStore2&lt;/name&gt;
    &lt;prefix-name&gt;WLJMS2_&lt;/prefix-name&gt;
    &lt;data-source&gt;eFpNonXADataSource&lt;/data-source&gt;
    &lt;target&gt;efpserver_man2 (migratable)&lt;/target&gt;
    &lt;/jdbc-store&gt;
    &lt;jms-system-resource&gt;
    &lt;name&gt;eFPJMS&lt;/name&gt;
    &lt;target&gt;efpcluster&lt;/target&gt;
    &lt;sub-deployment&gt;
    &lt;name&gt;eFPServer&lt;/name&gt;
    &lt;target&gt;eFpJMSServer&lt;/target&gt;
    &lt;/sub-deployment&gt;
    &lt;sub-deployment&gt;
    &lt;name&gt;eFPServer2&lt;/name&gt;
    &lt;target&gt;eFpJMSServer2&lt;/target&gt;
    &lt;/sub-deployment&gt;
    &lt;descriptor-file-name&gt;jms/efpjms-jms.xml\JMS Description-jms.xml&lt;/descriptor-file-name&gt;
    &lt;/jms-system-resource&gt;
    &lt;admin-server-name&gt;AdminServer&lt;/admin-server-name&gt;
    &lt;jdbc-system-resource&gt;
    &lt;name&gt;eFpDataSource&lt;/name&gt;
    &lt;target&gt;efpcluster&lt;/target&gt;
    &lt;descriptor-file-name&gt;jdbc/eFpDataSource-2004-jdbc.xml&lt;/descriptor-file-name&gt;
    &lt;/jdbc-system-resource&gt;
    &lt;jdbc-system-resource&gt;
    &lt;name&gt;eFpNonXADataSource&lt;/name&gt;
    &lt;target&gt;efpcluster&lt;/target&gt;
    &lt;descriptor-file-name&gt;jdbc/eFpNonXADataSource-6172-jdbc.xml&lt;/descriptor-file-name&gt;
    &lt;/jdbc-system-resource&gt;
    &lt;/domain&gt;
    ##JMS Description-jms.xml
    &lt;?xml version='1.0' encoding='UTF-8'?&gt;
    &lt;weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-jms [http://www.bea.com/ns/weblogic/weblogic-jms/1.0/weblogic-jms.xsd]"&gt;
    &lt;connection-factory name="ConnectionFactory"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;jms/ConnectionFactory&lt;/jndi-name&gt;
    &lt;security-params&gt;
    &lt;attach-jmsx-user-id&gt;false&lt;/attach-jmsx-user-id&gt;
    &lt;/security-params&gt;
    &lt;/connection-factory&gt;
    &lt;connection-factory name="XAConnectionFactory"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;jms/XAConnectionFactory&lt;/jndi-name&gt;
    &lt;transaction-params&gt;
    &lt;transaction-timeout&gt;3600&lt;/transaction-timeout&gt;
    &lt;xa-connection-factory-enabled&gt;true&lt;/xa-connection-factory-enabled&gt;
    &lt;/transaction-params&gt;
    &lt;security-params&gt;
    &lt;attach-jmsx-user-id&gt;false&lt;/attach-jmsx-user-id&gt;
    &lt;/security-params&gt;
    &lt;/connection-factory&gt;
    &lt;uniform-distributed-queue name="ActiveActivityQueue"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;queue/efpActiveActivityQueue&lt;/jndi-name&gt;
    &lt;load-balancing-policy&gt;Round-Robin&lt;/load-balancing-policy&gt;
    &lt;forward-delay&gt;-1&lt;/forward-delay&gt;
    &lt;reset-delivery-count-on-forward&gt;true&lt;/reset-delivery-count-on-forward&gt;
    &lt;/uniform-distributed-queue&gt;
    &lt;uniform-distributed-topic name="AdminTopic"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;topic/efpAdminTopic&lt;/jndi-name&gt;
    &lt;load-balancing-policy&gt;Round-Robin&lt;/load-balancing-policy&gt;
    &lt;/uniform-distributed-topic&gt;
    &lt;uniform-distributed-topic name="AuditTopic"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;topic/efpAuditTopic&lt;/jndi-name&gt;
    &lt;load-balancing-policy&gt;Round-Robin&lt;/load-balancing-policy&gt;
    &lt;/uniform-distributed-topic&gt;
    &lt;uniform-distributed-topic name="ErrorTopic"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;topic/efpErrorTopic&lt;/jndi-name&gt;
    &lt;load-balancing-policy&gt;Round-Robin&lt;/load-balancing-policy&gt;
    &lt;/uniform-distributed-topic&gt;
    &lt;uniform-distributed-topic name="FreeTextTopic"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;topic/efpFreeTextTopic&lt;/jndi-name&gt;
    &lt;load-balancing-policy&gt;Round-Robin&lt;/load-balancing-policy&gt;
    &lt;/uniform-distributed-topic&gt;
    &lt;uniform-distributed-topic name="ReportingTopic"&gt;
    &lt;default-targeting-enabled&gt;true&lt;/default-targeting-enabled&gt;
    &lt;jndi-name&gt;topic/efpReportingTopic&lt;/jndi-name&gt;
    &lt;load-balancing-policy&gt;Round-Robin&lt;/load-balancing-policy&gt;
    &lt;/uniform-distributed-topic&gt;
    &lt;/weblogic-jms&gt;
    -----

    Getting the following exception while trying to connect the JMS destination I am using weblogic 10.3.3 connecting to oracle AQ. The config has been done as per the 'Interoperating with Oracle AQ JMS' document from oracle. I could see that while deploying the application the number of connections in the database increasing to 15 and getting the following error message.
    <Jun 15, 2011 4:14:29 PM EDT> <Warning> <EJB> <BEA-010061> <The Message-Driven E
    JB: SampleEJBBean is unable to connect to the JMS destination: jms/propQueue. Th
    e Error was:
    oracle.jms.AQjmsException: Internal error: Cannot obtain XAConnection weblogic.c
    ommon.resourcepool.ResourceLimitException: No resources currently available in p
    ool TestDataSource to allocate to applications, please increase the size of the
    pool and retry..
    at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal
    (ResourcePoolImpl.java:555)
    at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(Resourc
    ePoolImpl.java:332)
    at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(Resourc
    ePoolImpl.java:322)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.j
    ava:438)
    at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.j
    ava:317)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(Connectio
    nPoolManager.java:93)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(Connectio
    nPoolManager.java:61)
    at weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:
    1670)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1
    468)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:439)
    at weblogic.jdbc.jta.DataSource.connect(DataSource.java:396)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
    ce.java:355)
    at oracle.jms.AQjmsDBConnMgr.getConnection(AQjmsDBConnMgr.java:566)
    at oracle.jms.AQjmsXAConnection.createXAQueueSession(AQjmsXAConnection.j
    ava:214)
    at weblogic.ejb.container.internal.JMSConnectionPoller.setUpQueueSession
    s(JMSConnectionPoller.java:1545)
    at weblogic.ejb.container.internal.JMSConnectionPoller.createJMSConnecti
    on(JMSConnectionPoller.java:2047)
    at weblogic.ejb.container.internal.JMSConnectionPoller.connect(JMSConnec
    tionPoller.java:787)
    at weblogic.ejb.container.internal.MDConnectionManager.startConnectionPo
    lling(MDConnectionManager.java:244)
    at weblogic.ejb.container.manager.MessageDrivenManager.start(MessageDriv
    enManager.java:584)
    at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.mdManagerSt
    art(MessageDrivenBeanInfoImpl.java:1334)
    at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.deployMessa
    geDrivenBeans(MessageDrivenBeanInfoImpl.java:1314)
    at weblogic.ejb.container.deployer.EJBDeployer.deployMessageDrivenBeans(
    EJBDeployer.java:1669)
    at weblogic.ejb.container.deployer.EJBDeployer.start(EJBDeployer.java:14
    93)
    at weblogic.ejb.container.deployer.EJBModule.start(EJBModule.java:614)
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(Module
    ListenerInvoker.java:249)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleSta
    teDriver.java:427)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD
    river.java:43)
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStat
    eDriver.java:119)
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartMod
    ulesFlow.java:28)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.ja
    va:1269)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineD
    river.java:43)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.
    java:409)
    at weblogic.application.internal.SingleModuleDeployment.activate(SingleM
    oduleDeployment.java:43)
    at weblogic.application.internal.DeploymentStateChecker.activate(Deploym
    entStateChecker.java:161)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(Ap
    pContainerInvoker.java:79)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.ac
    tivate(AbstractOperation.java:569)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.ac
    tivateDeployment(ActivateOperation.java:150)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.do
    Commit(ActivateOperation.java:116)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.co
    mmit(AbstractOperation.java:323)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploym
    entCommit(DeploymentManager.java:844)
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeplo
    ymentList(DeploymentManager.java:1253)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(
    DeploymentManager.java:440)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.com
    mit(DeploymentServiceDispatcher.java:164)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb
    ackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb
    ackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallb
    ackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:69)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
    gWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

  • Unable to locate connection factory

    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://164.179.168.157:389");
    jndiContext = new InitialContext(env);
    queueConnectionFactory = (QueueConnectionFactory)
                   //jndiContext.
                   jndiContext.lookup("jms/QueueConnectionFactory");I've set up a domain controller and a sun app server on machine A. I created a queue using the java tutorial and using the admin console. My connectionFactory (queue) is named jms/QueueConnectionFactory
    Now I'm running my prog on Machine B. But the lookup failed.
    JNDI API lookup failed: javax.naming.InvalidNameException: jms: [LDAP: error code 34 - 0000208F: NameErr: DSID-031001AA, problem 2006 (BAD_NAME), data 8350, best match of:
         'jms'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Here's what I did in detail...
    I've set up a win2k domain controller radwebdc.tfcorp.org on server RAD_WEB (164.169.168.157). On my local host montanoj01, I run SimpleQueueSender java program with this initial context entry.
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://164.179.168.157:389");
    env.put(Context.SECURITY_PRINCIPAL, "jan montano");
    env.put(Context.SECURITY_CREDENTIALS, "password");I've managed to get pass through jndiContext = new InitialContext(env); with no errors. Meaning I've established a connection with my ldap server right?
    //jndiContext.lookup("QueueConnectionFactory");
    //jndiContext.lookup("jms/QueueConnectionFactory");
    //jndiContext.lookup("jms");* neither of these 3 works
    When I'm looking for the connectionfactory I get an error
    javax.naming.InvalidNameException: QueueConnectionFactory: [LDAP: error code 34 - 0000208F: NameErr: DSID-031001AA, problem 2006 (BAD_NAME), data 8350, best match of:
    'QueueConnectionFactory'
    I know I created a connection factory on rad_web using the sun application server admin console. and my connection factory's name is jms/QueueConnectionFactory. I can also see this using asadmin list-connector-resources.
    I researched error code 34 and it says :
    LDAP_INVALID_DN_SYNTAX: Indicates that the syntax of the DN is incorrect. (If the DN syntax is correct, but the LDAP server's structure rules do not permit the operation, the server returns LDAP_UNWILLING_TO_PERFORM.)source: http://www.directory-info.com/LDAP/LDAPErrorCodes.html
    What am I doing wrong? Please I need your help. Thanks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Problem with transacted JMS connection factory and transaction timeouts

              We encountered an interesting problem using transacted JMS connection factories.
              An EJB starts a container managed transaction and tries to validate a credit card
              before creating some information to a database for the user, in case of success
              an SMS is sent to the user via the transacted JMS queue. If the credit card authentications
              duration is about the same as the transactions timeout (in this case the default
              30 seconds) sometimes the database inserts is committed but the JMS insert is
              rollbacked. How can this be?
              If the authorization duration is much longer than 30 seconds everything works
              fine (both database and JMS inserts rollbacked), the same is true if a rollback
              is insured by calling EJBContext.setRollbackOnly(). The problem thus occurs only
              if the duration is approximately the same as the transaction timeout, it appears
              that the database insert is not timeouted but the JMS insert is. How can this
              be if they are both participating in the same transaction.
              The JMSConnectionFactory used is a Connection factory with XA-enabled. The result
              is the same also with the default "javax.jms.QueueConnectionFactory" and if we
              configure our own factory with user transactions enabled.
              Any help appreciated!
              

    Tomas Granö wrote:
              > We encountered an interesting problem using transacted JMS connection factories.
              > An EJB starts a container managed transaction and tries to validate a credit card
              > before creating some information to a database for the user, in case of success
              > an SMS is sent to the user via the transacted JMS queue. If the credit card authentications
              > duration is about the same as the transactions timeout (in this case the default
              > 30 seconds) sometimes the database inserts is committed but the JMS insert is
              > rollbacked. How can this be?
              It should not be.
              >
              > If the authorization duration is much longer than 30 seconds everything works
              > fine (both database and JMS inserts rollbacked), the same is true if a rollback
              > is insured by calling EJBContext.setRollbackOnly(). The problem thus occurs only
              > if the duration is approximately the same as the transaction timeout, it appears
              > that the database insert is not timeouted but the JMS insert is. How can this
              > be if they are both participating in the same transaction.
              >
              > The JMSConnectionFactory used is a Connection factory with XA-enabled. The result
              > is the same also with the default "javax.jms.QueueConnectionFactory" and if we
              > configure our own factory with user transactions enabled.
              >
              > Any help appreciated!
              Make sure that your session is not "transacted". In other words,
              the first parameter to createSession() must be false. There is an
              unfortunate name re-use here. If a session is "transacted", it
              maintains an independent "inner transaction" independent of the
              outer transaction. From the above description, it seems unlikely
              that your application has this wrong, as you say that
              "setRollbackOnly" works - but please check anyway.
              Make sure that you are using a true XA capable driver and database
              (XA "emulation" may not suffice)
              Beyond the above, I do not see what can be going wrong. You
              may want to try posting to the transactions and jdbc newsgroups. Note
              that JMS is appears to be exhibiting the correct behavior, but the
              JDBC operation is not. The JDBC operation appears to have
              its timeout independent of the transaction monitor's timeout.
              Tom
              

  • Are Connection Factory and JMS Queue supposed to be in JNDI tree

    I have created Connection Factory and JMS Queue. I am expecting to find both in JNDI tree. Where, in the http://localhost:7001/console/consolejndi.portal, could I find them? I mean, in which branch of the JNDI tree?

    Hi,
    You should find them following exactly the way you define their JNDI Names... Make sure you are looking into the JNDI tree for the right managed server... Pay attention into the targets of your connection factory and queue...
    For example, a JNDI name jms.myConnectionFactory (or jms/myConnectionFactory) targeted to soa_server1 will appear under soa_server1 / jms / myConnectionFactory ...
    Hope this helps...
    Cheers,
    Vlad

  • Foreign jms connection factory username and password

    I have to connect to TIBCO as the foreign JMS. I have created a foreign JMS server and configured JNDI properties including username and password. I configured a connection factory and specified username and password as well. Finally, I configured foreign destination.
              In web.xml and corresponding welogic.xml, I am using the resource-ref with Container authentication.
              With the above, I always get the following exception.
              javax.jms.JMSSecurityException: Not permitted
                   at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:499)
                   at com.tibco.tibjms.TibjmsSession._createProducer(TibjmsSession.java:697)
                   at com.tibco.tibjms.TibjmsQueueSession.createSender(TibjmsQueueSession.java:123)
              The above code works fine under the following circumstances:
              * If I don't use any username and passwords.
              * If I pass the username and password to the connection factory when creating the connection. According to the documentation here (http://e-docs.bea.com/wls/docs81/jms/j2ee_components.html#1033768) doing so in an error:(
              Any ideas or suggestions?

    Even though I had configured things in the web.xml and weblogic.xml, I didn't use them. So, instead of using global JNDI, I used java:comp/env JNDI. Once, I used the correct JNDI, the connection is working... I will continue to do further testing.
              > I have to connect to TIBCO as the foreign JMS. I
              > have created a foreign JMS server and configured JNDI
              > properties including username and password. I
              > configured a connection factory and specified
              > username and password as well. Finally, I configured
              > foreign destination.
              >
              > In web.xml and corresponding welogic.xml, I am using
              > the resource-ref with Container authentication.
              >
              > With the above, I always get the following exception.
              >
              >
              > javax.jms.JMSSecurityException: Not permitted
              > at
              > t
              > com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:4
              > 99)
              > at
              > t
              > com.tibco.tibjms.TibjmsSession._createProducer(TibjmsS
              > ession.java:697)
              > at
              > t
              > com.tibco.tibjms.TibjmsQueueSession.createSender(Tibjm
              > sQueueSession.java:123)
              >
              > The above code works fine under the following
              > circumstances:
              > * If I don't use any username and passwords.
              > * If I pass the username and password to the
              > connection factory when creating the connection.
              > According to the documentation here
              > e
              > (http://e-docs.bea.com/wls/docs81/jms/j2ee_components.
              > html#1033768) doing so in an error:(
              >
              > Any ideas or suggestions?

  • Javax.naming.NameNotFoundException for foreign JMS Connection factory

    I have a foreign jms server configured and when I try and test it I get a Name not found exception.
              javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms]; remaining name 'SSLQueueConnectionFactory'
              The config.xml looks ok
              <ForeignJMSServer
              ConnectionURL="ssl://eaid1-jms.ges.symantec.com:7243"
              JNDIProperties="" Name="JMS Proxy Dev" Targets="TeamWorksServer">
              <ForeignJMSConnectionFactory
              LocalJNDIName="jms.SSLQueueConnectionFactory"
              Name="MyForeign JMS Connection Factory"
              PasswordEncrypted="{3DES}Es94ikW1TZzBFyDp+3/gktRtDaHWI6j/"
              RemoteJNDIName="SSLQueueConnectionFactory" Username="weblogicUser"/>
              <ForeignJMSDestination LocalJNDIName="jms.WEBLOGIC.TEST.QUEUE"
              Name="MyForeign JMS Destination" RemoteJNDIName="WEBLOGIC.TEST.QUEUE"/>
              </ForeignJMSServer>
              The code i took from the QueueSend example
              package com.symantec.utils.jms;
              import java.io.BufferedReader;
              import java.io.IOException;
              import java.io.InputStreamReader;
              import java.util.Hashtable;
              import javax.jms.*;
              import javax.naming.Context;
              import javax.naming.InitialContext;
              import javax.naming.NamingException;
              /** This example shows how to establish a connection
              * and send messages to the JMS queue. The classes in this
              * package operate on the same JMS queue. Run the classes together to
              * witness messages being sent and received, and to browse the queue
              * for messages. The class is used to send messages to the queue.
              * @author Copyright (c) 1999-2006 by BEA Systems, Inc. All Rights Reserved.
              public class QueueSend
              // Defines the JNDI context factory.
              public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
              // Defines the JMS context factory.
              public final static String JMS_FACTORY="jms.SSLQueueConnectionFactory";
              // Defines the queue.
              public final static String QUEUE="WEBLOGIC.TEST.QUEUE";
              private QueueConnectionFactory qconFactory;
              private QueueConnection qcon;
              private QueueSession qsession;
              private QueueSender qsender;
              private Queue queue;
              private TextMessage msg;
              * Creates all the necessary objects for sending
              * messages to a JMS queue.
              * @param ctx JNDI initial context
              * @param queueName name of queue
              * @exception NamingException if operation cannot be performed
              * @exception JMSException if JMS fails to initialize due to internal error
              public void init(Context ctx, String queueName)
              throws NamingException, JMSException
              qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
              qcon = qconFactory.createQueueConnection();
              qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
              queue = (Queue) ctx.lookup(queueName);
              qsender = qsession.createSender(queue);
              msg = qsession.createTextMessage();
              qcon.start();
              * Sends a message to a JMS queue.
              * @param message message to be sent
              * @exception JMSException if JMS fails to send message due to internal error
              public void send(String message) throws JMSException {
              msg.setText(message);
              qsender.send(msg);
              * Closes JMS objects.
              * @exception JMSException if JMS fails to close objects due to internal error
              public void close() throws JMSException {
              qsender.close();
              qsession.close();
              qcon.close();
              private static void readAndSend(QueueSend qs)throws IOException, JMSException
                   BufferedReader msgStream = new BufferedReader(new InputStreamReader(System.in));
              String line=null;
              boolean quitNow = false;
              do {
              System.out.print("Enter message (\"quit\" to quit): \n");
              line = msgStream.readLine();
              if (line != null && line.trim().length() != 0) {
              qs.send(line);
              System.out.println("JMS Message Sent: "+line+"\n");
              quitNow = line.equalsIgnoreCase("quit");
              } while (! quitNow);
              private static InitialContext getInitialContext(String url)
              throws NamingException
              Hashtable env = new Hashtable();
              env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
              env.put(Context.PROVIDER_URL, url);
              return new InitialContext(env);
              /** main() method.
              * @param args WebLogic Server URL
              * @exception Exception if operation fails
              public static void main(String[] args) throws Exception
              InitialContext ic = getInitialContext("t3://tus1bpmappdin01.ges.symantec.com:7501");
              QueueSend qs = new QueueSend();
              qs.init(ic, QUEUE);
              readAndSend(qs);
              qs.close();
              Any suggestions would be appreciated
              Regards

    I have a foreign jms server configured and when I try and test it I get a Name not found exception.
              javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'jms.SSLQueueConnectionFactory' Resolved jms]; remaining name 'SSLQueueConnectionFactory'
              The config.xml looks ok
              <ForeignJMSServer
              ConnectionURL="ssl://eaid1-jms.ges.symantec.com:7243"
              JNDIProperties="" Name="JMS Proxy Dev" Targets="TeamWorksServer">
              <ForeignJMSConnectionFactory
              LocalJNDIName="jms.SSLQueueConnectionFactory"
              Name="MyForeign JMS Connection Factory"
              PasswordEncrypted="{3DES}Es94ikW1TZzBFyDp+3/gktRtDaHWI6j/"
              RemoteJNDIName="SSLQueueConnectionFactory" Username="weblogicUser"/>
              <ForeignJMSDestination LocalJNDIName="jms.WEBLOGIC.TEST.QUEUE"
              Name="MyForeign JMS Destination" RemoteJNDIName="WEBLOGIC.TEST.QUEUE"/>
              </ForeignJMSServer>
              The code i took from the QueueSend example
              package com.symantec.utils.jms;
              import java.io.BufferedReader;
              import java.io.IOException;
              import java.io.InputStreamReader;
              import java.util.Hashtable;
              import javax.jms.*;
              import javax.naming.Context;
              import javax.naming.InitialContext;
              import javax.naming.NamingException;
              /** This example shows how to establish a connection
              * and send messages to the JMS queue. The classes in this
              * package operate on the same JMS queue. Run the classes together to
              * witness messages being sent and received, and to browse the queue
              * for messages. The class is used to send messages to the queue.
              * @author Copyright (c) 1999-2006 by BEA Systems, Inc. All Rights Reserved.
              public class QueueSend
              // Defines the JNDI context factory.
              public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
              // Defines the JMS context factory.
              public final static String JMS_FACTORY="jms.SSLQueueConnectionFactory";
              // Defines the queue.
              public final static String QUEUE="WEBLOGIC.TEST.QUEUE";
              private QueueConnectionFactory qconFactory;
              private QueueConnection qcon;
              private QueueSession qsession;
              private QueueSender qsender;
              private Queue queue;
              private TextMessage msg;
              * Creates all the necessary objects for sending
              * messages to a JMS queue.
              * @param ctx JNDI initial context
              * @param queueName name of queue
              * @exception NamingException if operation cannot be performed
              * @exception JMSException if JMS fails to initialize due to internal error
              public void init(Context ctx, String queueName)
              throws NamingException, JMSException
              qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
              qcon = qconFactory.createQueueConnection();
              qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
              queue = (Queue) ctx.lookup(queueName);
              qsender = qsession.createSender(queue);
              msg = qsession.createTextMessage();
              qcon.start();
              * Sends a message to a JMS queue.
              * @param message message to be sent
              * @exception JMSException if JMS fails to send message due to internal error
              public void send(String message) throws JMSException {
              msg.setText(message);
              qsender.send(msg);
              * Closes JMS objects.
              * @exception JMSException if JMS fails to close objects due to internal error
              public void close() throws JMSException {
              qsender.close();
              qsession.close();
              qcon.close();
              private static void readAndSend(QueueSend qs)throws IOException, JMSException
                   BufferedReader msgStream = new BufferedReader(new InputStreamReader(System.in));
              String line=null;
              boolean quitNow = false;
              do {
              System.out.print("Enter message (\"quit\" to quit): \n");
              line = msgStream.readLine();
              if (line != null && line.trim().length() != 0) {
              qs.send(line);
              System.out.println("JMS Message Sent: "+line+"\n");
              quitNow = line.equalsIgnoreCase("quit");
              } while (! quitNow);
              private static InitialContext getInitialContext(String url)
              throws NamingException
              Hashtable env = new Hashtable();
              env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
              env.put(Context.PROVIDER_URL, url);
              return new InitialContext(env);
              /** main() method.
              * @param args WebLogic Server URL
              * @exception Exception if operation fails
              public static void main(String[] args) throws Exception
              InitialContext ic = getInitialContext("t3://tus1bpmappdin01.ges.symantec.com:7501");
              QueueSend qs = new QueueSend();
              qs.init(ic, QUEUE);
              readAndSend(qs);
              qs.close();
              Any suggestions would be appreciated
              Regards

  • Connection pool and Connection factory difference?

    Hi,
    Can someone clarify the difference between connection pool and connection factory.
    I know connection pool is some thing like a pool of database connection manitained at one place so that an application or client can use it when it requires.
    Then wat exactly is connection factory..say in 10g we always put a connection factory name in all adapters and acces the data sources like DB ,FTP,AQ ..etc
    can someone clarify??
    regards,

    To conserve system resources and to improve the performance of transactional applications, WebLogic allows you to define a pool of client connections (generally database but may be a FTP,FILE etc. as well)
    A Connection Factory object encapsulates a set of connection configuration parameters that has been defined by an administrator. A client uses it to create a connection with a service provider (generally JMS).
    Regards,
    Anuj

  • Error when creating a new JMS connection factory in GlassFish V3 b57

    When I use the admin console and try to create a new JMS connection factory in GlassFish V3 b57, the operation fails with the error message
    An error has occurred: Can't find ConfigModel.Property for attr -connection-validation-required on interface com.sun.enterprise.config.serverbeans.ConnectorConnectionPool
    Should I better report this in the GlassFish news forum (http://forums.java.net/jive/forum.jspa?forumID=56&start=0)?
    p.s. I launch the admin console from within NetBeans 6.7.1 (the server started before the IDE). WIth version b 56, creating a JMS connection factory worked fine.
    Best regards,
    Michael Justin

    This bug does not apear in the nightly build (b58) now so everything looks fine again.
    Greetings,
    Michael

  • Error in looking up the JMS Connection Factory

              Hi,
              I am using weblogic6.1. I created a JMS Connection factory from administrator
              console with the name QueueConnectionFactory..But when i restart the server and
              try to look up that factory its giving an NameNotFoundException...This is the
              entry of the factory in config.xml
              <JMSConnectionFactory JNDIName="QueueConnectionFactory"
              Name="QueueConnectionFactory" Targets="myserver"/>
              But if i change reapply the target server to myserver from admin console whenever
              restart the server it works fine..
              I dont know where is the problem..Can u please update me on the problem if u people
              have any idea.
              The trace of the exceptions i got is as below:
              java.rmi.RemoteException: javax.naming.NameNotFoundException: Unable to
              resolve QueueConnectionFactory. Resolved
              : '' Unresolved:'QueueConnectionFactory' ; remaining name ''
              java.rmi.RemoteException: javax.naming.NameNotFoundException: Unable to resolve
              QueueConnectionFactory. Resolved: '' Unr
              esolved:'QueueConnectionFactory' ; remaining name ''
              Thanx
              Regards,
              Narayan
              

              Hi Zach,
              No, I dont think ur interpretation is right..Once the entry corresponding
              to JMS Connection Factory is there in config.xml, the server should automatically
              bind it at the time of booting.. right. Why should this administrator server come
              into the picture.
              Thanx
              "Zach" <[email protected]> wrote:
              >Don't know. Sounds like the admin server is not notifying JMS of the
              >changes under certain situations. You might post in the management.console
              >newsgroup.
              >
              >_sjz.
              >
              >"Narayan" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> Hi,
              >> I am using weblogic6.1. I created a JMS Connection factory from
              >administrator
              >> console with the name QueueConnectionFactory..But when i restart the
              >server and
              >> try to look up that factory its giving an NameNotFoundException...This
              >is
              >the
              >> entry of the factory in config.xml
              >>
              >> <JMSConnectionFactory JNDIName="QueueConnectionFactory"
              >> Name="QueueConnectionFactory" Targets="myserver"/>
              >> But if i change reapply the target server to myserver from admin console
              >whenever
              >> restart the server it works fine..
              >> I dont know where is the problem..Can u please update me on the problem
              >if
              >u people
              >> have any idea.
              >> The trace of the exceptions i got is as below:
              >> ****************
              >> java.rmi.RemoteException: javax.naming.NameNotFoundException:
              >Unable to
              >> resolve QueueConnectionFactory. Resolved
              >> : '' Unresolved:'QueueConnectionFactory' ; remaining name ''
              >> java.rmi.RemoteException: javax.naming.NameNotFoundException: Unable
              >to
              >resolve
              >> QueueConnectionFactory. Resolved: '' Unr
              >> esolved:'QueueConnectionFactory' ; remaining name ''
              >>
              >> **********************
              >>
              >> Thanx
              >> Regards,
              >> Narayan
              >>
              >>
              >
              >
              

  • When to use a JMS Bridge and when to use a Proxy

    Hi,
    We currently are running an OSB with most connections coming in via MQ to a JMS queue. We've been asked to implement a JMS Bridge.
    Wen using a messaging bridge to a foreign provider, the documentation recommends using the Foreign JMS option to simplify the creation of bridge destinations anyway.
    The key difference with using the bridge, is that you remove responsibility for the network transfer of messages from OSB's proxy and give it to the bridge. However, this now means that the messages are stored in WebLogic JMS with all the implications that brings. Is that really what you want? Isn't the whole point of MQ to be your reliable messaging service and not to use WebLogic JMS instead/as well?
    But the Solutions design team mention
    Without bridge
    MQ >--------Receive -------->---------Send ---------> JMS
    | ....... Transaction 1 ....| .....Transaction 2 ......|
    With bridge
    MQ >--------Receive -------->---------Send ---------> JMS
    | ....... ............Transaction 1 .......... ......|
    Is this true, so we have to use a bridge?

    I think your solution design team is wrong..
    MQ --> OSB Proxy Receive ---> OSB Proxy Send --> JMS will be a single XA transaction.
    An OSB proxy is preferred in this case for the following reasons:
    1. Don't use bridge for receiving messages . Bridge should be used rather for sending messages to non highly available remote messaing providers. Even for this case weblogic recommends SAF .
    2. Whatever the savings on transaction as mentioned by your design team doesn't appears to be correct.
    3. Weblogic messaging bridge appears to be a buggy product. You will have to apply a couple of patches to make the bridge to work as expected. It will take some time to stabilise it in a production environment. Weblogic's EJB container is much stable and with MDB's it would be less prone to bugs. This is from my personal experience. Others might have a different experience.
    4. You can leverage the out of box monitoring facilities provided by OSB. This can give you stats of how many messages were transferred between MQ and JMS, average & max response time etc.

Maybe you are looking for

  • Syncronizing Accounts on Separate Computers thru Network

    Hi. I have a desktop with individual accounts for our family members. And I have a notebook computer with my account. I have replicated my account on my notebook with my account on the family computer. Is there a way to automatically, or at least sea

  • Media Encoder H.264 settings

    I hope someone can help me with this. I created a video in CS4 in HDV, I  need to output using the following specs my client has asked for: fullscreen video at 1920 x 1080 resolution, Quicktime h.264 - best quality / multipass. Sound is 48 KHz 16b. T

  • External command like SM69 in CE 7.2

    Hello, in CE 7.2 is there any possibilities to setup an external command (script unix) like I'd can on a ABAP system with SM69 transaction? thank you very much

  • Exporting from Premiere Pro into Story

    Can the metadata etc be exported from Premiere Pro into Story. For example in the process of roughing out a documentary idea I'm shooting clips and making subclips in bins and developing sequences in this rough style.  It would be useful to document

  • Approval Strategy and statistical IO

    Hello, In the employee master record I have a cost center. I don't have a responsible person in the cost center itself. I can bring to C4TE Reporting Line Items as well (org structure). Based on those conditions above two scenarios for approval strat