1 Reply Latest reply on Oct 5, 2006 11:47 AM by askesis

    JBossMQ with PostgreSQL : MDB deployment failes, really desp

    askesis

      I want to change the JBossMQ database to PostgreSQL.
      All seems to go OK, but if I deploy the same ear that worked with hsqldb I get the following exception (part of the trace):

      2006-10-04 12:43:38,113 TRACE [org.jboss.mq.Connection] addConsumer sub=Subscription[subId=-2147483648connection=ConnectionToken:ID:1/65e3510070c84a046983e850fdc1642f destination=QUEUE.Muntpost/PrintQueue messageSelector=null Local Create]
      2006-10-04 12:43:38,113 TRACE [org.jboss.mq.server.TracingInterceptor] CALLED : subscribe
      2006-10-04 12:43:38,113 TRACE [org.jboss.mq.server.TracingInterceptor] ARG : Subscription[subId=-2147483648 destination=QUEUE.Muntpost/PrintQueue messageSelector=null Local Create]
      2006-10-04 12:43:38,113 TRACE [org.jboss.mq.security.ServerSecurityInterceptor] Checking subscribe authorize on ConnectionToken:ID:1/65e3510070c84a046983e850fdc1642f sub=Subscription[subId=-2147483648 destination=QUEUE.Muntpost/PrintQueue messageSelector=null Local Create]
      2006-10-04 12:43:38,113 DEBUG [org.jboss.mq.security.SecurityManager] No SecurityMetadadata was available for Muntpost/PrintQueue using default security config
      2006-10-04 12:43:38,113 TRACE [org.jboss.mq.security.SecurityMetadata] Adding role: Role {name=guest;read=true;write=true;create=true}
      2006-10-04 12:43:38,114 TRACE [org.jboss.mq.server.TracingInterceptor] EXCEPTION : subscribe:
      java.lang.NullPointerException
       at org.jboss.mq.security.SecurityManager$SubjectInfo.toString(SecurityManager.java:68)
       at org.jboss.mq.security.SecurityManager.authorize(SecurityManager.java:248)
       at org.jboss.mq.security.ServerSecurityInterceptor.authorizeRead(ServerSecurityInterceptor.java:248)
       at org.jboss.mq.security.ServerSecurityInterceptor.subscribe(ServerSecurityInterceptor.java:155)
       at org.jboss.mq.server.TracingInterceptor.subscribe(TracingInterceptor.java:787)
       at org.jboss.mq.server.JMSServerInvoker.subscribe(JMSServerInvoker.java:312)
       at org.jboss.mq.il.jvm.JVMServerIL.subscribe(JVMServerIL.java:329)
       at org.jboss.mq.Connection.addConsumer(Connection.java:789)
       at org.jboss.mq.SpyConnectionConsumer.<init>(SpyConnectionConsumer.java:111)
       at org.jboss.mq.SpyConnection.createConnectionConsumer(SpyConnection.java:209)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:795)
       at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:839)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
       at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
       at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      



      I think that there is something wrong with my security but I have no idea what. Can anyone help me with this?

      The jbossmq-service extract of what I think is the relevent part:

      <mbean code="org.jboss.mq.security.SecurityManager" name="jboss.mq:service=SecurityManager">
       <attribute name="DefaultSecurityConfig">
       <security>
       <role name="guest" read="true" write="true" create="true"/>
       </security>
       </attribute>
       <attribute name="SecurityDomain">java:/jaas/jbossmq</attribute>
       <depends optional-attribute-name="NextInterceptor">jboss.mq:service=DestinationManager</depends>
       </mbean>
      


      From the logn-config.xml:

       <!-- Security domain for JBossMQ -->
       <application-policy name = "jbossmq">
       <authentication>
       <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule"
       flag = "required">
       <module-option name = "unauthenticatedIdentity">guest</module-option>
       <module-option name = "dsJndiName">java:/DefaultDS</module-option>
       <module-option name = "principalsQuery">SELECT PASSWD FROM JMS_USERS WHERE USERID=?</module-option>
       <module-option name = "rolesQuery">SELECT ROLEID, USERID FROM JMS_ROLES WHERE USERID=?</module-option>
       </login-module>
       </authentication>
       </application-policy>
      


      The xdoclet tags of the MDB:

      /**
       * @ejb.bean name="PrintQueueHandler"
       * display-name="Name for PrintQueueHandler"
       * description="Description for PrintQueueHandler"
       * destination-type="javax.jms.Queue"
       * acknowledge-mode="Auto-acknowledge"
       *
       * @jboss.destination-jndi-name name = "queue/Muntpost/PrintQueue"
       */