Weblogic JMS clustering

Hi All,
I need help understanding weblogic JMS clustering. I read few documents regarding this but not very clear about it.
Hope to get help/suggestion here.
I have following setup
box1 - adminserver, osbserver1
box2- osbserver2
osbserver1 and osbserver2 are clustered together
I have a JMS server created each one for each managed server (OSB server) in the cluster. These JMS servers are non-persistent. persistent store is "None".
I have one JMS module created with connection factory, distributed Qs and are associated with a subdeployment that is targeting to the cluster
I have all the servers(admin server and both OSB servers) are in running state
To monitor JMS server I go to services->JMS Servers
I see jmsserver1 which is targeted to osbserver1 has "Health" is marked as "OK"
jmserver2 which is targeted to osbserver2 has no "health" check
If I go to environment->servers , I see all the 3 servers are marked as "RUNNING" with "Health" OK
As a note I created managed server in the second box before creating the JMS server and resources.
And I do not have any nodemanager setup at this point.
How would I know the JMSserver in both servers are active and have no issues ?
Do I need to do anything to start JMSServer in OSBServer2 ?
Edited by: 818591 on Feb 11, 2011 8:27 AM
Edited by: 818591 on Feb 11, 2011 9:31 AM

Should the JMS Server/JMS modules already be created so that the remote managed server will get configuration of these setup?No. This is not how resorces are created. Pack/unpack is used for creating the domains, ONCE. Later on you may very well use Weblogic admin console to create the resources and target/untarget those.
As a note I do not have node managed setup yet. It is recommended that you use node manager in environments where servers may be installed on different machines -
http://download.oracle.com/docs/cd/E14571_01/web.1111/e13740/toc.htm
To me, it seems a network/cluster communication issue. If you have Oracle Support, better raise a SR with them to find out the exact issue as they would be in better position to understand your architecture and analyzing logs. You may also raise a thread in Oracle Weblogic forum to get a suggestion from a Weblogic expert -
WebLogic Server - Clustering
Regards,
Anuj

Similar Messages

  • Need Help on Weblogic JMS Clustering

    Hi All
    Our code is moving to a clustered environment (2 OSB managed servers), in order to support JMS clustering i have already done the below, I just need your advice whether i have done it correctly or not. Please advise
    1) Created 2 JMS Servers, targeted one JMS Server on OSB MS 1 and second JMS Server on OSB MS 2.
    2) Created distributed destinations (Queues and Topics) subdeployment on both JMS Servers.
    3) Targeted all connection factories to OSB Clsuter. Load Balancing and Server Affinity is enabled by default. Should server affinity be disabled for proper load balancing to occur? Please advise on this
    3) JMS Proxy and business services use cluster URL's now (jms://serverA:7001,serverB:7001/CF/QueueOrTopic). I Hope its correct? Please advise
    Is there any other setting that i need to do or i have missed out? Please let us know.
    Also, one more thing we are calling SOA Composites via SOA-Direct protocol in OSB. The SOA Servers owned by some other team will also be load balanced. Since this is a t3 call, HTTP load balancer would not come into picture here, right? How do i load balance this outgoing call from business service (2 options bellow)
    1) t3://server1:8001,server2:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    2) Specifying two individual endpoints and selecting load balancing algorithm as Round Robin
    t3://server1:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    t3://server2:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    what is the diff between the above 2 options? Also, if one of the SOA nodes go down, than which option would automatically redirect to other node. We have to ensure this as the HTTP load balancer ensures this thing. Thanks
    Edited by: Amit Sachdev on Jun 13, 2012 12:16 AM

    Hi Amit,
    The first part looks correct.
    Create two jms servers (jmsosb1, jmsobs2)
    Create data source and jndi location
    create foreign connection factory under JmsModule, create destination and connection factory.
    the cluster business service end point will be
    jms:///<<ForeignConnectionFactory Name>>/<<destination local jndi name>>
    The second part SOA endpoint will be in cluster environment as follows:
    http://<< cluster name>>/soa-infra/services/default/<<composite name>>/<<servicename>>
    example:
    http://test.ch/soa-infra/services/default/cm.conn.bp.test/test_client_ep
    or if you want to invoke two nodes directly you use below url as well.
    http://<<SOAservername1>>:<<port>>,<<SOAservername2>>:<<port>>//soa-infra/services/default/<<composite name>>/<<servicename>>
    Regards,
    Padmanabham

  • Inconsistent message publishing times through weblogic JMS client

    Hi,
    We have a weblogic JMS application which we are deploying in a clustered weblogic enviornment. We are using distributed queues/topics with file store. We have both JMS cliient and server running on separate weblogic clusters. Most of the times it will take about 10 milli seconds to push the message into queue, but 1 in 50 messages takes about anywhere between 0.2 sec to 6 secs. Recently for three days it just took 10 msec for all the messages throught these three days and then started behaving erratically again. I am not able to really figure out why there is lot of deviation in the publishing times. When I monitor both my client and server through admin consiole, I don't see any stuck threads, heap size is normal, cpu load is normal, no problems with network. Please help me to figure out the root cause for abnormal publishing times.
    Regards
    Koti

    Could you check if there are JVM garbage collections during some the publishing times.
    In particular check if there are any full garbage collection occuring when you notice such a deviation in the publishing time.

  • OSB jms clustering - load balancing seems to be not working

    Hi All,
    I have one admin server and two managed servers running ( one of these managed server is running in the remote linux machine) in a cluster
    I have connectionfactory created with load balance enabled with round robin
    and server affinity is disabled
    I have queue created as uniformly distributed Q
    I have a proxy service with load balancing as roundrobin and endpoint URL as below
    jms://rdoelapp001011:61703,rdoelapp001013:61703/synergyConnectionFactory1/MM_gridQ0
    If I execute this proxy sending messages it always go to one server only. There is no message going to the other server.
    If I shutdown the server that receives messages then the other server is receiving messages. Seems like fail-over is working but not the load-balancing
    There is one point may be worth mentioning here is, from the admin console if I look at the servers for the clusters it has below information
    Name      State      Drop-out Frequency      Remote Groups Discovered      Local Group Leader      Total Groups      Discovered Group Leaders      Groups      Primary      
    synergyOSBServer1     RUNNING     Never     0     synergyOSBServer1     1     synergyOSBServer1     *{synergyOSBServer1}*     0          
    synergyOSBServer2     RUNNING     Never     0     synergyOSBServer1     1     synergyOSBServer1     *{synergyOSBServer1, synergyOSBServer2}* 0
    one server has groups as {synergYOSBServer1} instead of {synergyOSBServer1, synergyOSBServer2}. Does that look correct?
    here is my jms xml file
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
    *<connection-factory name="synergyConnectionFactory1">*
    *<sub-deployment-name>synergySubDeploy1</sub-deployment-name>*
    *<default-targeting-enabled>false</default-targeting-enabled>*
    *<jndi-name>synergyConnectionFactory1</jndi-name>*
    *<client-params>*
    *<client-id-policy>Restricted</client-id-policy>*
    *<subscription-sharing-policy>Exclusive</subscription-sharing-policy>*
    *<messages-maximum>10</messages-maximum>*
    *</client-params>*
    *<transaction-params>*
    *<xa-connection-factory-enabled>false</xa-connection-factory-enabled>*
    *</transaction-params>*
    *<load-balancing-params>*
    *<load-balancing-enabled>true</load-balancing-enabled>*
    *<server-affinity-enabled>false</server-affinity-enabled>*
    *</load-balancing-params>*
    *<security-params>*
    *<attach-jmsx-user-id>false</attach-jmsx-user-id>*
    *</security-params>*
    *</connection-factory>*
    <uniform-distributed-queue name="errorQ">
    <sub-deployment-name>synergySubDeploy1</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <jndi-name>errorQ</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    <forward-delay>-1</forward-delay>
    <reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>
    </uniform-distributed-queue>
    <uniform-distributed-queue name="undlvQ">
    <sub-deployment-name>synergySubDeploy1</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <jndi-name>undlvQ</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    <forward-delay>-1</forward-delay>
    <reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>
    </uniform-distributed-queue>
    *<uniform-distributed-queue name="MM_gridQ0">*
    *<sub-deployment-name>synergySubDeploy1</sub-deployment-name>*
    *<default-targeting-enabled>false</default-targeting-enabled>*
    *<jndi-name>MM_gridQ0</jndi-name>*
    *<load-balancing-policy>Round-Robin</load-balancing-policy>*
    *<forward-delay>5</forward-delay>*
    *<reset-delivery-count-on-forward>true</reset-delivery-count-on-forward>*
    *</uniform-distributed-queue>*
    <saf-imported-destinations name="synergySAFImportedDest1">
    <sub-deployment-name>synergySubDeploy1</sub-deployment-name>
    <default-targeting-enabled>false</default-targeting-enabled>
    <saf-queue name="gridQ0">
    <remote-jndi-name>MB_gridQ0</remote-jndi-name>
    <local-jndi-name>gridQ0</local-jndi-name>
    <non-persistent-qos>At-Least-Once</non-persistent-qos>
    <time-to-live-default>0</time-to-live-default>
    <use-saf-time-to-live-default>false</use-saf-time-to-live-default>
    <unit-of-order-routing>Hash</unit-of-order-routing>
    </saf-queue>
    <jndi-prefix>MB_</jndi-prefix>
    <saf-remote-context>synergySAFContext1</saf-remote-context>
    <saf-error-handling>synergySAFErrorHndlr1</saf-error-handling>
    <time-to-live-default>0</time-to-live-default>
    <use-saf-time-to-live-default>false</use-saf-time-to-live-default>
    <unit-of-order-routing>Hash</unit-of-order-routing>
    </saf-imported-destinations>
    <saf-remote-context name="synergySAFContext1">
    <saf-login-context>
    <loginURL>t3://rdoelapp001013:7001</loginURL>
    <username>weblogic</username>
    <password-encrypted>{AES}z9VY/K4M7ItAr2Vedvhx+j9htR/HkbY2LRh1ED+Cz5Y=</password-encrypted>
    </saf-login-context>
    <compression-threshold>2147483647</compression-threshold>
    </saf-remote-context>
    <saf-error-handling name="synergySAFErrorHndlr1">
    <policy>Log</policy>
    <log-format xsi:nil="true"></log-format>
    <saf-error-destination xsi:nil="true"></saf-error-destination>
    </saf-error-handling>
    </weblogic-jms>
    Any help will be greatly appriciated
    Edited by: 818591 on Feb 16, 2011 11:28 AM

    I am not getting you here "the right approach is to make OSB run on the man server cluster and not on admin server. "
    I have a jms proxy service that I created from admin console
    And also I have gone thru the step 5 in the link below
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/deploy/config.html#wp1524235
    If I am not wrong, the proxy service endpoint URI determines where it is pointing to. If it is a cluster environment, it should point to a clustered address
    My proxy has below endpoint URI
    jms://rdoelapp001011:61703,rdoelapp001013:61703/synergyConnectionFactory1/MM_gridQ0
    and rdoelapp001011:61703,rdoelapp001013:61703 is my cluster address
    As per your suggestion "To fix your problem, *make osb to run on the cluster* and specify the same URL for the jms proxy service"
    Could you please provide some instruction how would I "make osb jms proxy service to run in a cluster"
    As a note, I have Q defined as a distributed Q and connection factory targets to the cluster. UDQ also targtes to the cluster.
    Just for a testing I have created another manged server running local to the machine where my admin server is running
    And I created a proxy by following steps as I mentioned above and with endpoint URI as below
    jms://rdoelapp001011:61703,rdoelapp001013:61703,*rdoelapp001011:61700*/synergyConnectionFactory1/MM_gridQ0
    where the new address of my cluster is rdoelapp001011:61703,rdoelapp001013:61703,rdoelapp001011:61700
    It did create consumers in both the managed servers in the cluster that are running locally, but no consumers in the remote managed server.
    So I am kind of leaning towards thinking that there is some incorrect setup for the remote managed server and may be admin server is not able to communicate to the remote server for some reason but not sure about it..
    As a note the cluster is setup to communicate using "unicast" channel
    and I created a channel in each manged server with the same name
    here is the cluster configuration
    <name>synergyCluster1</name>
    <cluster-address>rdoelapp001011:61703,rdoelapp001013:61703,rdoelapp001011:61700</cluster-address>
    <default-load-algorithm>round-robin</default-load-algorithm>
    *<cluster-messaging-mode>unicast</cluster-messaging-mode>*
    *<cluster-broadcast-channel>synergyChannel1</cluster-broadcast-channel>*
    *<number-of-servers-in-cluster-address>3</number-of-servers-in-cluster-address>*
    </cluster>
    here are the twoOSBserver configuration
    <server>
    <name>synergyOSBServer1</name>
    <machine xsi:nil="true"></machine>
    <listen-port>61703</listen-port>
    <cluster>synergyCluster1</cluster>
    <web-server>
    <web-server-log>
    <number-of-files-limited>false</number-of-files-limited>
    </web-server-log>
    </web-server>
    <server-debug>
    <debug-scope>
    <name>weblogic.jms.saf</name>
    <enabled>true</enabled>
    </debug-scope>
    <debug-jmssaf>true</debug-jmssaf>
    <debug-saf-sending-agent>true</debug-saf-sending-agent>
    </server-debug>
    <listen-address>localhost</listen-address>
    <network-access-point>
    *<name>synergyChannel1</name>*
    *<protocol>cluster-broadcast</protocol>*
    *<listen-address>localhost</listen-address>*
    *<listen-port>61702</listen-port>*
    <http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
    <tunneling-enabled>false</tunneling-enabled>
    *<outbound-enabled>true</outbound-enabled>*
    *<enabled>true</enabled>*
    <two-way-ssl-enabled>false</two-way-ssl-enabled>
    <client-certificate-enforced>false</client-certificate-enforced>
    </network-access-point>
    <jta-migratable-target>
    <user-preferred-server>synergyOSBServer1</user-preferred-server>
    <cluster>synergyCluster1</cluster>
    </jta-migratable-target>
    </server>
    <server>
    <name>synergyOSBServer2</name>
    <ssl>
    <enabled>false</enabled>
    </ssl>
    <machine xsi:nil="true"></machine>
    <listen-port>61703</listen-port>
    <listen-port-enabled>true</listen-port-enabled>
    <cluster>synergyCluster1</cluster>
    <web-server>
    <web-server-log>
    <number-of-files-limited>false</number-of-files-limited>
    </web-server-log>
    </web-server>
    <listen-address>rdoelapp001013</listen-address>
    <network-access-point>
    *<name>synergyChannel1</name>*
    *<protocol>cluster-broadcast</protocol>*
    *<listen-address>rdoelapp001013</listen-address>*
    *<listen-port>61702</listen-port>*
    <http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
    <tunneling-enabled>false</tunneling-enabled>
    *<outbound-enabled>true</outbound-enabled>*
    *<enabled>true</enabled>*
    <two-way-ssl-enabled>false</two-way-ssl-enabled>
    <client-certificate-enforced>false</client-certificate-enforced>
    </network-access-point>
    <java-compiler>javac</java-compiler>
    <jta-migratable-target>
    <user-preferred-server>synergyOSBServer2</user-preferred-server>
    <cluster>synergyCluster1</cluster>
    </jta-migratable-target>
    <client-cert-proxy-enabled>false</client-cert-proxy-enabled>
    </server>
    <server>
    Edited by: 818591 on Feb 18, 2011 11:26 AM

  • JMS/clustering design and configuration question

    Hi:
              Any help or feedback much appreciated cos' this topic (no pun intended)
              seems to be complicated.
              I have an application that uses stateless session beans for mainline
              business functionality (heavy database writing) that is say then
              audited. The auditing is taken care of asynchronously by the SS bean's
              business method (after completing whatever it is doing) using a JMS
              connection factory to write to a queue which is consumed by a MDB. So,
              control is returned to the user ostensibly before the auditing is done
              for performance reasons. No transactional semantics are expected between
              the mainline business logic and the audit of same. So, our main use of
              JMS/MDB is for asynchrous operation. This design seems to be fine on a
              single server as long as a persistent store is configured.
              Now the hard part. We need to cluster - again for load-balancing and
              performance. As I've read thru this newsgroup and experimented some,
              I've quickly realized that it's not as simple as just configuring a
              cluster of just EJBs.
              Since the queues are basically used for asynch processing, would the
              following work?
              1) Set up a JMS server config for each WL server in the cluster targeted
              only for each WL server
              2) Set up a different queue for each JMS server with prefixed JNDI name
              (myserver1_someJNDIname)
              3) Configure/code the producer SS EJBs so that they ask the connection
              factory for a connection with a prefixed JNDI name (e.g
              myserver1_someJNDIname) based on the server they are running on (known
              perhaps from a property file local to each server)
              4) Target MDBs to be deployed on all servers in the cluster just like
              regular EJBs
              5) Finally, deploy the MDBs unjarred on each WL server and edit the
              weblogic-ejb-jar.xml on each server to set the -destination name-
              prefixed by the server on which it is deployed (e.g.
              myserver1_someJNDIname)
              Will the above basically accomplish what I'm after, which is a cluster
              of machines each equally capable of locally offloading asynchronous
              processing? I understand that for the most part WL server will use local
              EJBs, etc if they are available. I'm not particularly interested in
              failover at either EJB or JMS level, but rather HttpSession level so
              that if a WL server goes down another could pick up perhaps by by the
              user re-requesting whatever operation failed.
              If this is not possible because of the way clustering works (homogenous)
              then is there some other way to solve this problem. I basically do not
              want a cluster where there is a single point of failure (other than DB
              server) for any given piece of functionality.
              Thanks for any help.
              Alex
              

    First and easiest,
              Just create a set of JMS tables for each server in your db. You can specify
              a JMS tablename prefix in your weblogic properties for eash server using
              weblogic.jms.tableNamePrefix=W5
              as long as the prefix is only two chars. This worked great for us until we
              decided to drop JMS because of its memory leaks. We were having to restart
              our servers every 8 hours.
              Second, get rid of JMS. Dirty little secret:You don't need JMS to do
              asynchronous work! You can use threads inside of J2EE and not break J2EE.
              Can't tell you how for proprietary reasons but you can.
              Mica Cooper
              

  • Problem in Automated Failover in JMS Clustering

    Hi,
              I am facing a problem in JMS clustering, now let me explain the scenario.
              I have 2 managed servers participating in the weblogic cluster, now since JMS is a singleton service what i did is i have created 2 JMS servers and targeted them to Managedservers 1 and 2 respectively.I have also created a DistributedTopic
              Now in my case an applet is the JMS client i have registered the exception listener on both the topic connection and WLSession, now when i bring down one managed server forcefully(Ctrl-C) the call back method onException is supposed to have been called,which has reconnect method which tries to get the connection but it does not happen in this clustered environment.
              I have checked the same thing without a cluster i.e with a single server (Admin server) and it seems to be calling the Onexception call back method.
              What is wrong with this approach.
              Another query just to add on to this is, is this the right approach to achieve automated failover in a clustered environment or do i have to go with Migratable servers concept(not clear on this though).
              Thanks in advance.
              Suresh

    I think is correct.U must stop all the server of the cluster, or to know how of the two your client is using. U can used the amministration console to monitoring the status of the destination of the JMS server.
              I have a similar problem, but using tho different kynd of Receiver.
              Now in my case I created two different type of client
              Asynchronous and synchronous .
              The first type registered himself as MessageListener and also as ExceptionListener on the connection. When I bring down the managed server in which the client was connected the call back method onException is called as the bea documentation explains.
              The second client instead registered himself as ExceptionListener but not as MessageListener on the connestion. It called in different execution thread the receive method on the receiver created using the connection.
              In this case when i bring down the managed server in which the client is connect the call back method onException was NOT called, instead the client received the JMSException on all the call "receive()".
              This is true? I expected instead that the behaviour of the 2 type of client was the same!

  • Reg : JMS Clustering

              Hai,
              I am facing one problem in JMS Clustering. can any one throws a light on that?
              it will be very helpful to
              me.
              i configured WebLogic Cluster with node1 and node 1 as Managed Servers.
              i created jmsserver1 and jmsserver2.
              i created queue1 and queue2 in jmsserver1 and jmsserver2 respectively.
              i created one distributed destination by adding queue1 and queue2 as members.
              i targetted jmsserver1 to node1 and jmsserver2 to node2.
              i wrote one program that send the messages to distributed destination using it's
              jndi name.
              i have send some messages to distributed queue.
              after i shutdown the any one of the managed server ex: node1. after that while
              i am trying to send the message to
              distributed destination, it is throwing the exception that no such a jndi name.
              i have checked with JNDI tree.
              jndi name of distributed destination is not there?
              is there any configuration missing or some thing else?
              can any one help me to solve this problem?
              regards
              cg
              

    Sounds like you've set things up correctly. Post your config.xml
              and I'll take a quick look. Please also include the JNDI
              name of the distributed dest your client is looking up.
              cg wrote:
              > Hai,
              > I am facing one problem in JMS Clustering. can any one throws a light on that?
              > it will be very helpful to
              > me.
              >
              > i configured WebLogic Cluster with node1 and node 1 as Managed Servers.
              > i created jmsserver1 and jmsserver2.
              > i created queue1 and queue2 in jmsserver1 and jmsserver2 respectively.
              > i created one distributed destination by adding queue1 and queue2 as members.
              >
              >
              > i targetted jmsserver1 to node1 and jmsserver2 to node2.
              >
              > i wrote one program that send the messages to distributed destination using it's
              > jndi name.
              >
              > i have send some messages to distributed queue.
              > after i shutdown the any one of the managed server ex: node1. after that while
              > i am trying to send the message to
              > distributed destination, it is throwing the exception that no such a jndi name.
              > i have checked with JNDI tree.
              >
              > jndi name of distributed destination is not there?
              >
              > is there any configuration missing or some thing else?
              >
              >
              > can any one help me to solve this problem?
              >
              >
              > regards
              > cg
              >
              >
              

  • Any kind of integration experience with Weblogic JMS and Oracle AQ?

    Hi,
    In my company I work with java developers who believe in some kind of "holly" database independence I don't understand and as a result my life as a database developer is hell on earth.. Yesterday we again started to discuss, this time where to log, they believe database is slow and prefer logging to filesystem, after some hours finally I could convince them for some operational and reporting needs to use the database and will do this in an asyncronous way whiich they won't get slow. After all I believe the reason for a database is data, this is the place where data lives, and with the correct desing and implementation logging to database would perform better.
    I love Oracle features, and know that we paid a lot for this software, so today I started investigating this promised solution. And quickly I found AQ and JMS topics in the documentation :)
    After this introduction here is my problem; my company use BEA Weblogic as application server and the java guys want AQ to automatically (but of course with some delay) take their JMS log requests into database tables. Does any one have similar application experience, or any kind of integration experience with Weblogic JMS and Oracle AQ?
    Any comments, references, documentation, sample code, url will be most welcomed :)
    Thank you very much!
    Tonguc
    [email protected]
    References I found upto now;
    Oracle® Streams Advanced Queuing Java API Reference 10g Release 2 (10.2) http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14291/toc.htm
    (Packages; javax.jms & oracle.jms)
    Oracle® Streams Advanced Queuing User's Guide and Reference 10g Release 2 (10.2) http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14257/toc.htm
    Part IV
    Using Oracle JMS and Oracle Streams AQPart V describes how to use Oracle JMS and Oracle Streams Advanced Queuing (AQ).
    Chapter 11, "Introducing Oracle JMS"
    Chapter 12, "Oracle JMS Basic Operations"
    Chapter 13, "Oracle JMS Point-to-Point"
    Chapter 14, "Oracle JMS Publish/Subscribe"
    Chapter 15, "Oracle JMS Shared Interfaces"
    Chapter 16, "Oracle JMS Types Examples"
    A Sample Code from Otn
    http://www.oracle.com/technology/sample_code/tech/java/web_services/jmsws/NewsQueueEJB.java.html

    I wouldn't go as far to say Oracle AQ is out-dated today. However, it is indeed a proprietary technology that did not found much main-stream adoption in the earlier years after its introduction. The advent of JMS made it somewhat more useful (or should I say intriguing, because more people are trying to tie it together with other J2EE technologies), but the Oracle's JMS wrapper classes in aqapi.jar were not feature complete for a long while, so using it outside Oracle's application server was painful, if not impossible. I do agree that the info at the dev2dev's JMS newsgroup or in this forum is highly fragmented, as neither Oracle nor BEA provides an official solution to integrate AQ with WebLogic, so people like us have to learn the technology through experimentation and in a piecemeal fashion.
    3 years ago I was literally "playing around" - we had a polling mechanism set up to use triggers to write Oracle data changes into an event table, and had a Java-based daemon to scan that table and publish events as JMS messages to the WebLogic JMS server. This continues to work reliably till today, but I was looking for a solution that has few parts - I wanted to hook up my WebLogic MDB directly to AQ as a foreign JMS provider. Although I was able to get it to work (including XA), there were a few hoops I had to jump through, such as decompiling the Oracle AQjms classes to make them bind to the WebLogic JNDI tree.
    One year after that Diptanshu Parui took what I did a giant step further - he extended the Oracle AQjms classes to allow them to be bound to the WebLogic JNDI tree naturally, and he figured out how to use WebLogic JMS messging bridge to re-send single-threaded AQ JMS messages to clustered JMS queues, which allow concurrent message assumption by multiple instances of MDB's. My impression is that he is using that setup in a production environment.
    I am sure you are aware of it but I would like to make it clear - in order to use AQ as a foreign JMS provider to WebLogic-hosted MDB's, you don't need to update your database to Oracle 10g - Oracle 8i is good enough (although I recommend at least 9i Release 2). It is not the database engine, but rather the aqapi.jar JMS wrapper on top of AQ that matters. I do recommend that you use aqapi.jar from Oracle Application Server 10.0.3 or up for better XA support, among other things. Again, you don't have to replace WebLogic with Oracle AS - you only need a single jar file from it and put it in your WebLogic's classpath. However, I don't know what this means from a licensing point of view if you ever go to production - do you have to pay the full price of OracleAS or OC4J just to use the aqapi.jar?
    In the coming days I will test the latest aqapi.jar to see how much progress Oracle has made in terms of making their J2EE products more spec-compliant :-).
    Hope the above gives you a different perspective.
    Eric

  • Jms clustering with spring

    Hi
    i have created the jms clustering configuration in weblogic 10.3.3 that i am facing issues in the connection queue like this
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'queueConnectionFactory' defined in ServletContext resource [WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'QueueConnectionFactory'. Resolved ''; remaining name 'QueueConnectionFactory'
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1401)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
    and i have configured servers below
    clustered the managed servers MS-1 and MS-2
    Servers Targets
    JMS Server Admin server
    JMS Module cluster
    connection queue cluster
    queue JMSServer
    i have tried with the 2 different JMS servers for managed servers
    Servers Targets
    JMS Server - 1 MS-1
    JMS Server - 2 MS-2
    JMS Module cluster
    connection queue cluster
    queue JMSServer - 1 and JMSServer - 2
    so, please help us to configure the JMS clustering with spring.
    Note : please find the spring - applicationContext.xml below thats is used to configure the connection factory and jms queue.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
         <bean id="invoiceListener" class="com.spring.jms.InvoiceMDB" />
         <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
              <property name="environment">
                   <props>
                        <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                        <prop key="java.naming.provider.url">t3://localhost:6001,localhost:6003,localhost:6005</prop>
                   </props>
              </property>
         </bean>
         <bean id="queueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
              <property name="jndiName"><value>QueueConnectionFact</value></property>
         </bean>
         <bean id="invoiceQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
              <property name="connectionFactory"><ref bean="queueConnectionFactory" /></property>
              <property name="destinationResolver"><ref bean="jmsDestinationResolver" /></property>
         </bean>
         <bean id="jmsDestinationResolver" class="org.springframework.jms.support.destination.JndiDestinationResolver">
              <property name="jndiTemplate"><ref bean="jndiTemplate" /></property>
              <property name="cache"><value>true</value></property>
         </bean>
         <bean id="jmsInvoiceSender" class="com.spring.jms.InvoiceQueueSender">
              <property name="jmsTemplate"><ref bean="invoiceQueueTemplate" /></property>
         </bean>
         <bean id="invoiceQueue" class="org.springframework.jndi.JndiObjectFactoryBean">
              <property name="jndiTemplate"><ref bean="jndiTemplate"/></property>
              <property name="jndiName"><value>MyQueue</value></property>
         </bean>
         <bean id="Invoicelistener" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
         <property name="concurrentConsumers" value="5" />
         <property name="connectionFactory" ref="queueConnectionFactory" />
         <property name="destination" ref="invoiceQueue" />
         <property name="messageListener" ref="invoiceListener" />
         <property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE" />
    <property name="sessionTransacted" value="true" />
         </bean>
    </beans>

    Are you sure you have defined the correct JNDI-name in the Spring config file?
    An example set-up of a domain can be found here - http://middlewaremagic.com/weblogic/?p=7795 (the script presented in the create domain section)
    This is basically the same set-up you have, except that a distributed queue is being used that is targeted to JMS Servers through a subdeployment.
    The Spring configuration looks as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
            <property name="environment">
                <props>
                    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                    <prop key="java.naming.provider.url">t3://192.168.1.50:9001,192.168.1.50:9002</prop>
                </props>
            </property>
        </bean>
        <bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate" ref="jndiTemplate"/>
            <property name="jndiName" value="jms/ConnectionFactory"/>
        </bean>
        <bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate" ref="jndiTemplate"/>
            <property name="jndiName" value="jms/CompanyQueue"/>
        </bean>
        <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
            <property name="connectionFactory" ref="connectionFactory"/>
            <property name="defaultDestination" ref="destination"/>
        </bean>
        <bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
            <property name="workManagerName" value="java:comp/env/default"/>
            <property name="resourceRef" value="true"/>
        </bean>
        <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
            <property name="connectionFactory" ref="connectionFactory"/>
            <property name="destination" ref="destination"/>
            <property name="messageListener" ref="receiver"/>
            <property name="taskExecutor" ref="taskExecutor"/>
        </bean>
        <bean id="sender" class="model.logic.JMSSender">
            <property name="jmsTemplate" ref="jmsTemplate"/>
        </bean>
        <bean id="receiver" class="model.logic.JMSReceiver"/>
    </beans>To test create a servlet, for example,
    public class TestServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            JMSSender jmsSender = SpringUtilities.getJMSSender();
            jmsSender.sendMessage();
            System.out.println("message send by the testservlet");
    }and web.xml as
    <web-app ...>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-config.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!-- default weblogic work manager -->
        <resource-ref>
            <res-ref-name>default</res-ref-name>
            <res-type>commonj.work.WorkManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <!-- default weblogic timer manager -->
        <resource-ref>
            <res-ref-name>tm/default</res-ref-name>
            <res-type>commonj.timers.TimerManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <servlet>
            <servlet-name>TestServlet</servlet-name>
            <servlet-class>test.TestServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>TestServlet</servlet-name>
            <url-pattern>/testservlet</url-pattern>
        </servlet-mapping>
    </web-app>with this set-up the JMS clustered and Spring is able to use it on both servers.

  • JMS clustering

    Does weblogic5.1 support JMS clustering? If it doesn't when it is going to
              be.
              -Muruga
              

    JMS is available as a cluster wide service today. You have a single node
              that is a JMS provider for the entire cluster.
              In a future release, we plan to fully cluster our JMS service.
              For more information, I suggest contacting your sales representative who can
              provide you with a bit more detail.
              Thanks,
              Michael
              Michael Girdley
              Product Manager, WebLogic Server & Express
              BEA Systems Inc
              Muruga Chinnananchi <[email protected]> wrote in message
              news:8fsqbu$he0$[email protected]..
              > Does weblogic5.1 support JMS clustering? If it doesn't when it is going to
              > be.
              >
              > -Muruga
              >
              >
              

  • Tom Help needed in JMS Clustering!!!!!!!!!

    Hi Tom,
              I have a typical problem with JMS Clustering,i amtrying to implement an automatic failover by registering the connection and the session with the exception listener and then inside onexception method i have reconnect logic.
              My application has an applet and the downloading page directly loads the MyApplet jar and weblogic thin client jars and then when i switch of the server using in CTRl-C in windows environment with a single server onException gets fired.Now for clustering we have moved to enterprise archive setup(.ear) and my applet jar and thinclient jars are bundled with in the war(web archive) and the war is inside the ear.In this scenario when i shut down one of the managed servers the onexception does not get invoked and then i shut down both the servers then also its not getting invoked, plz help me i dont understand what is wrong with this,when the servers are on onMessage works fine and my real time blotters also get updated.
              My clustering set up has 2 managed servers,2 JMS servers targeted to each managed server and a distributed topic.
              In a noraml scenario when the servers are running my onMessage gets called, but when i shutdown the servers the onException does not get called from the EAR.
              Pls help me on how to proceed.i cant put the thick weblogic.jar as down loading from my applet cannot handle it.
              Regards,
              Suresh

    Sorry Suresh -
              I don't know what is going wrong - my suspicion is that you've found a bug in WebLogic thin-client IIOP.
              Since the problem started when you moved to SP5, you can try continuing to use the SP4 jar on the client.
              And sometimes this type of problem is with with Sun JDK libraries (which supplies most of the thin client IIOP stack), so there's a small chance switching to a 1.5JVM for the client would work (I don't know if BEA supports this).
              You might also try posting to the rmi-iiop newsgroup. (Andy just loves it when I push problems off to him! Well maybe not.)
              Tom

  • Weblogic.jms.frontend.FEConnectionFactory on Stuck Thread

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
              <HTML><HEAD>
              <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
              <META content="MSHTML 6.00.2900.2627" name=GENERATOR>
              <STYLE></STYLE>
              </HEAD>
              <BODY>
              <DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>I need help on this issue quite
              urgently.</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>Server Environment</FONT></DIV>
              <DIV><FONT face=Arial size=2>----------------------</FONT></DIV>
              <DIV>
              <DIV><FONT face=Arial size=2>Server: Weblogic 8.1 SP4</FONT></DIV>
              <DIV><FONT face=Arial size=2>Java version: 1.4.2_05</FONT></DIV></DIV>
              <DIV><FONT face=Arial size=2>I have 2 Sun Solaris Servers each having 4
              NICs with the following addresses:</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>SERVER A       
              SERVER B</FONT></DIV>
              <DIV><FONT face=Arial size=2>-------------       
                      -------------</FONT></DIV>
              <DIV><FONT face=Arial size=2>10.32.10.11       
              10.32.10.13</FONT></DIV>
              <DIV><FONT face=Arial size=2>10.32.10.12       
              10.32.10.14</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial
              size=2>10.31.10.131                       10.31.10.133</FONT></DIV>
              <DIV><FONT face=Arial size=2>10.31.10.132       
              10.31.10.134</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV>
              <DIV>
              <DIV><FONT face=Arial size=2>10.32.10.11 / 10.32.10.12 / 10.32.10.13 /
              10.32.10.14 are all mapped onto a Virtual IP Address
              10.32.10.1</FONT></DIV><FONT face=Arial size=2>10.31.10.131 / 10.31.10.132 /
              10.31.10.133 / 10.31.10.134 are all mapped onto a Virtual IP Address
              10.31.10.1</FONT></DIV></DIV>
              <DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>And the subnet for the above NICs is all
              255.255.255.0.</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>The 2 Sun Servers are being clustered by Vertias
              Cluster Server and At any one time, only one server is in active
              state.</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV></DIV>
              <DIV><FONT face=Arial size=2>Scenario:</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>When a client (IP Address: 
              10.32.10.101/255.255.255.0) tries to subscribe to the server's JMS Topic, the
              entire server hanged and no other client requests can be further
              processed.</FONT></DIV>
              <DIV><FONT face=Arial size=2>Health status checks on the server also did not get
              any response and the client also hanged.</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>A check on the Weblogic's Kernal threads shows that
              one of the thread is currently handling
              "weblogic.jms.frontend.FEConnectionFactory".</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>This hanged state will eventually timeout after
              600s and everything goes back to normal. </FONT></DIV>
              <DIV><FONT face=Arial size=2>The client will have exceptions saying No route to
              destination due to "Empty Reply".</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>I've also tried upgradng the Client's JDK to
              1.4.2_07 and the reslt is still the same.</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>For weblogic.jms.frontend.FEConnectionFactory, it
              seems that the Client is trying to establish a JMS connection with the server
              but somehow it got stuck in the process.</FONT></DIV>
              <DIV><FONT face=Arial size=2>Why is this so? Is this a SP4 bug?</FONT></DIV>
              <DIV><FONT face=Arial size=2></FONT> </DIV>
              <DIV><FONT face=Arial size=2>Regards</FONT></DIV>
              <DIV><FONT face=Arial size=2>Mike</FONT></DIV></BODY></HTML>

    check whether the QCF is targetted and deployed on the Managed Server. I am assuming your war is deployed on the managed server.
    cheers
    dips

  • WebLogic JMS high memory usage and frequent full GCs

    Hi Team,
                We have below set up in production (and all the lower environment).
    1. WLS: 10.3.6 (64 bit)
    2. Java: HP JDK 1.7.0.06 (64 bit)
    3. Two Manage server instances in cluster with one Migratable target
    4. one JMS server with Persistence store targeted to Migratable target
    5. Messages are persisted in DB
    6. about 37 distributed queues/topics are hosted on one JMS server
    7. .Net JMS clients and WebLogic JMS clients connect to respective JMS distributed Queues/topics to either produce message or consume.
    Since last month, we see that WebLogic Manage server hosting JMS server keeps on chewing memory "even with small (of the order of 28 messages in 4/5 days) load", GC indicates that objects are shifted from PSYoung space to ParOldGen during minor GCs but ParOldGen space keeps on filling up in smaller chunks. After x number of days (where x ranges from 5-7 days), even Full GC is not able to bring down memory significantly and that's when frequent full GCs start with long pauses making JMS highly unstable.
    We don't have JMS Quotas configured but I think something else going on as it is not high on load.  Any additional hints or troubleshooting steps is much appreciated?
    Here is first and last  GC log just to give an idea...
    Heap after GC invocations=661 (full 0):
    {Heap before GC invocations=1 (full 0):
    PSYoungGen      total 1225728K, used 1050624K [9fffffff09c00000, 9fffffff5f400000, 9fffffff5f400000)
      eden space 1050624K, 100% used [0x9fffffff09c00000,0x9fffffff49e00000,0x9fffffff49e00000)
      from space 175104K, 0% used [0x9fffffff54900000,0x9fffffff54900000,0x9fffffff5f400000)
      to   space 175104K, 0% used [0x9fffffff49e00000,0x9fffffff49e00000,0x9fffffff54900000)
    ParOldGen       total 2797568K, used 0K [0x9ffffffe5f000000, 0x9fffffff09c00000, 0x9fffffff09c00000)
      object space 2797568K, 0% used [0x9ffffffe5f000000,0x9ffffffe5f000000,0x9fffffff09c00000)
    PSPermGen       total 49152K, used 47453K [0x9ffffffe1f000000, 0x9ffffffe22000000, 0x9ffffffe5f000000)
      object space 49152K, 96% used [0x9ffffffe1f000000,0x9ffffffe21e57630,0x9ffffffe22000000)
    2014-12-24T09:04:45.118-0700: 15.651: [GC [PSYoungGen: 1050624K->118221K(1225728K)] 1050624K->118293K(4023296K), 0.32600
    15 secs] [Times: user=0.07 sys=0.00, real=0.33 secs]
    {Heap before GC invocations=661 (full 0):
    PSYoungGen      total 1367168K, used 1364256K [9fffffff09c00000, 9fffffff5f400000, 9fffffff5f400000)
      eden space 1333376K, 100% used [0x9fffffff09c00000,0x9fffffff5b220000,0x9fffffff5b220000)
      from space 33792K, 91% used [0x9fffffff5d300000,0x9fffffff5f128030,0x9fffffff5f400000)
      to   space 33664K, 0% used [0x9fffffff5b220000,0x9fffffff5b220000,0x9fffffff5d300000)
    ParOldGen       total 2797568K, used 2654825K [0x9ffffffe5f000000, 0x9fffffff09c00000, 0x9fffffff09c00000)
      object space 2797568K, 94% used [0x9ffffffe5f000000,0x9fffffff0109a5c0,0x9fffffff09c00000)
    PSPermGen       total 151552K, used 147591K [0x9ffffffe1f000000, 0x9ffffffe28400000, 0x9ffffffe5f000000)
      object space 151552K, 97% used [0x9ffffffe1f000000,0x9ffffffe28021cd8,0x9ffffffe28400000)
    2014-12-29T08:18:08.798-0700: 429216.418: [GC [PSYoungGen: 1364256K->33632K(1329792K)] 4019081K->2752791K(4127360K), 0.8
    254362 secs] [Times: user=0.10 sys=0.00, real=0.83 secs]
    Regards,

    Thanks Luz. I have been collecting gclogs and heap dumps (whenever app server is high on memory and frequent GCs with long pauses are seen). So far heap dumps haven't revealed anything specific (may be I am not able to read heap dumps properly ) but looking at GC confirms that app server is consuming allocated heap.I was following Oracle WebLogic server support Patter as you have indicated. I thought about opening a ticket with HP but on high level JVM is doing what is suppose to do i.e allocating memory space as needed and performing GC therefore didn't go that path.
    Any other suggestions that might be useful. One of the things I forgot to mention ( and I will add it to original message), that one of the .Net consumers is not asynchronously connecting to its queue (to consume messages) rather it is synchronously connects and then if it doesn't find messages it disconnects and process goes on every few seconds. I was reading somewhere that frequent JNDI look ups should be avoided. Can this cause memory issue if so then it is strange as this same set up has been there over a year and we never has problem then?
    Regards,

  • How to creat an Weblogic JMS configuration with authentication

    I have to configure a weblogic jms topic in such a way when a remote sender send a message it has to connect using some authentication. Like when creating the initial context or the connectionFactory. But nowhere I got the steps for configuring it that way. Can you please let me know what is the out-of-the-box steps for achieving it. I am using all out-of the-box tools(no foreign jndi provider).

    Simple answer, you are in the WRONG forum, this is the Application Express (APEX) support forum..
    Thank you,
    Tony Miller
    Webster, TX

  • How to configure a error queue for weblogic jms topic

    Hi guys.
    I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
    1. using jms transport configure proxy service:
    Retry Count :3
    Retry Interval:10
    Error Destination: ErrorTopic
    Expiration Policy: Redirect
    I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.
    Any suggestions for this topic? Can anyone provide some helps or any useful links.
    Thanks in advance.
    Mingzhuang

    Mingzhuang
    I want to configure a error queue for weblogic jms topic. Wanted: The message goes to error destination when messages have expired or reached their redelivery limit.
    1. using jms transport configure proxy service:
    Retry Count :3
    Retry Interval:10
    Error Destination: ErrorTopic
    Expiration olicy: RedirectUnlike File/SFTP, JMS proxy service definition does not have the concept of Error Destination. To accomplish similar functionality go to JMSQ on (for which proxy is configured) server console (http://localhost:7001/console) and configure the Error Destination. Following URL will help in how to configure JMS Q.
    http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueues.html
    http://edocs.bea.com/wls/docs103/ConsoleHelp/taskhelp/jms_modules/queues/ConfigureQueueDeliveryFailure.html
    I tried use the proxy service to consume message from the jms topic . and generation an error in the proxy message flow. But the message didn't goes into the error topic.If every thing is configured as per above step, then the after retries, the weblogic server will put the message into JMS topic configured. Your proxy will receive from this topic.
    Let me know if we are not on same page.
    Cheers
    Manoj

Maybe you are looking for