# Topic oder Queue in JBoss erstellen



## LastUnicorn (2. Mai 2005)

Hallo, 

kann mir jemand sagen wie ich im JBoss eine neue Queue oder Topic erstelle an der ich dann lausche? Ist doch bestimmt in einer der tausend XML Files, oder?


----------



## Thomas Darimont (2. Mai 2005)

Hi,

schau doch mal unter %JBOSS_HOME%/server/_deineKonfiguration_/deploy.
Standardmäßig hies das entsprechende XML File jbossmq-destinations-service.xml und liegt im Unterverzeichnis jms.
Dort findest du auch die Beispiele für die initial vorhandenen "TestQueues und Topics" (testTopic,testQueue,A,B,C)...

Gruß Tom


----------



## LastUnicorn (2. Mai 2005)

So, danke erstmal. Ich hab jetzt mal eine Topic erstellt. Es kommt aber folgende Fehlermeldung: 

Connection not authorized to do durable subscription on topic: tickerTopic

Die neue Topic: 


```
<mbean code="org.jboss.mq.server.jmx.Topic"
	 name="jboss.mq.destination:service=Topic,name=tickerTopic">
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
    <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
    <attribute name="SecurityConf">
       <security>
         <role name="john" read="true" write="true"/>
      </security>
    </attribute>
  </mbean>
```


die jboss.xml: 


```
<?xml version='1.0' encoding='UTF-8' ?> 

<jboss>
  <enterprise-beans>
    <message-driven>
      <ejb-name>TickerProcessorBean</ejb-name>
      <configuration-name>Standard Message Driven Bean</configuration-name>
      <destination-jndi-name>topic/tickerTopic</destination-jndi-name>
      <mdb-user>john</mdb-user>
      <mdb-passwd>needle</mdb-passwd>
      <mdb-subscription-id>SomeName</mdb-subscription-id>
    </message-driven>
  </enterprise-beans>
</jboss>
```


----------



## LastUnicorn (4. Mai 2005)

Ah OK, jetzt hab ichs  endlich. Nur zur Info: 

In der JBoss.xml aus der Jar Datei der MessageDrivenBean


```
<?xml version='1.0' encoding='UTF-8' ?> 

<jboss>
  <enterprise-beans>
    <message-driven>
      <ejb-name>TickerProcessorBean</ejb-name>
      <configuration-name>Standard Message Driven Bean</configuration-name>
      <destination-jndi-name>topic/tickerTopic</destination-jndi-name>
      <mdb-user>john</mdb-user>
      <mdb-passwd>needle</mdb-passwd>
      <mdb-subscription-id>SomeName</mdb-subscription-id>
    </message-driven>
  </enterprise-beans>
</jboss>
```

In der C:\JBoss\server\default\deploy\jms\jbossmq-destinations-service.xml wurde eine neue Topic erstellt




```
<mbean code="org.jboss.mq.server.jmx.Topic"
	 name="jboss.mq.destination:service=Topic,name=tickerTopic">
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
    <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
    <attribute name="SecurityConf">
       <security>
         <role name="guest" read="true" write="true"/>
         <role name="publisher" read="true" write="true" create="false"/>
         <role name="durpublisher" read="true" write="true" create="true"/>
      </security>
    </attribute>
  </mbean>
```

Im selben Verzeichnis gibt es noch eine Datei namens jbossmq-state.xml erstellt / kopiert, die die User sowie die Groups definiert. Diese Datei dient zum Mapping der User auf die Gruppen / Art des Tugriffs auf die Topic


```
<?xml version="1.0" encoding="UTF-8"?>
<StateManager>
	<Users>
		<User>
			<Name>j2ee</Name>
			<Password>j2ee</Password>
		</User>
		<User>
			<Name>john</Name>
			<Password>needle</Password>
			<Id>DurableSubscriberExample</Id>
		</User>
		<User>
			<Name>guest</Name>
			<Password>guest</Password>
		</User>
		<User>
			<Name>nobody</Name>
			<Password>nobody</Password>
		</User>
		<User>
			<Name>dynsub</Name>
			<Password>dynsub</Password>
		</User>
	</Users>
	<Roles>
		<Role name="guest">
			<UserName>j2ee</UserName>
			<UserName>guest</UserName>
			<UserName>john</UserName>
		</Role>
		<Role name="subscriber">
			<UserName>john</UserName>
		</Role>
		<Role name="publisher">
			<UserName>john</UserName>
			<UserName>dynsub</UserName>
		</Role>
		<Role name="durpublisher">
			<UserName>john</UserName>
			<UserName>dynsub</UserName>
		</Role>
		<Role name="noacc">
			<UserName>nobody</UserName>
		</Role>
	</Roles>
	<DurableSubscriptions>
	</DurableSubscriptions>
</StateManager>
```


Da ich gesehen habe, dass ziemlich viele Leute das Problem im Netz haben, hab ich gedacht ich schmeiss das einfach mal hier rein. Vielleicht hat ja noch einer das Problem


----------

