[jboss-user] [JBoss Messaging] - Issue with default clientId on ConnectionFactory

mskonda do-not-reply at jboss.com
Wed Jul 25 04:34:53 EDT 2007


I have setup a connectionfactory with a default client id as shown below:

  | <?xml version="1.0" encoding="UTF-8"?>
  |      <server>
  |         <loader-repository>jboss.messaging:loader=ScopedLoaderRepository
  |            <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
  |         </loader-repository>
  |         
  |         <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
  |            name="jboss.messaging.connectionfactory:service=MyConnectionFactory"
  |            xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
  |            <constructor>
  |               <arg type="java.lang.String" value="my-client-id"/>
  |            </constructor>
  |            <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  |            <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
  |            <depends>jboss.messaging:service=PostOffice</depends>
  |            
  |            <attribute name="JNDIBindings">
  |               <bindings>
  |                  <binding>/MyConnectionFactory</binding>
  |               </bindings>
  |            </attribute>
  |         </mbean>
  | </server>
  | 

The connection factory is bound to 'MyConnectionFactory' as expected. 

In my test client, I am doing the normal JMS setup of fetching the CF and getting a connection. 

The issue is when I try to create a durable subscription with no client id (as I am assuming the connection obtained from CF will use the default client id set during CF creation) on the connection.

Seems, that's not the case: I get 
java.lang.IllegalArgumentException: clientID name is null
  | 

Here's my test case:

  |  public void testSimplestDurableSubscription()
  |     {
  |         try
  |         {
  |             logger.info("test started");
  |             Connection conn = cf.createConnection();
  | 
  | 
  |             // conn.setClientID("my-client-id");
  | 
  |             Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
  |             logger.info("Created session");
  | 
  |             /*
  |              * The client id and the subscriber id is same
  |              */
  | 
  |             s.createDurableSubscriber((Topic) TEST_DUR_TOPIC_DEST_1,"my-sub-id");
  | 
  |             logger.info("Created durable subscriber");
  | 
  |             ObjectName destObjectName = new ObjectName(
  |                 "jboss.messaging.destination:service=Topic,name=" + getObjectName());
  |                 
  |             List subs = listSubscriptions(destObjectName);
  |             logger.info("Number of subscriptions " + subs.size());
  |             
  |             assertNotNull(subs);
  |             
  | 	    //  undeployDestination(TEST_DUR_TOPIC_1);
  |             
  |             closeConnection(conn);
  |         }
  |         catch (Exception ex)
  |         {
  |             logger.error(ex);
  |         }
  |         finally
  |         {
  |             try
  |             {
  |                 undeployDestination(TEST_DUR_TOPIC_1);
  |             }
  |             catch (Exception e)
  |             {
  |                 logger.error(e);
  |             }
  |         }
  |     }

Any pointers where I'm going wrong?

Thanks
Madhu

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067329#4067329

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4067329



More information about the jboss-user mailing list