-
1. Re: How to create a new Topic
adrian.brock Nov 7, 2002 2:54 AM (in response to mischulze)Look at
jbossmq-service.xml
and
jbossmq-destinations-service.xml
Regards,
Adrian -
2. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:12 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
3. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:14 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
4. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:15 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
5. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:15 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
6. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:15 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
7. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:16 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
8. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:16 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
9. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:16 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
10. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:19 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
11. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:22 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method:
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
} catch(NamingException ne) {
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris -
12. Re: How to create a new Topic
tharrisx Nov 12, 2002 2:30 AM (in response to mischulze)Topics and Queues in JBoss are normally configured statically in the xml files mentioned above. But, there is a way to dynamically add and remove topics, using the JMX interface. Take a look at this method and the rest of the code fragment:
import javax.jms.*;
import javax.management.*;
import javax.naming.*;
import org.jboss.jmx.adaptor.rmi.*;
... From class members ...
private InitialContext _jndiContext = null;
...
... From constructor ...
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "jnp://192.168.2.2:1099/");
_jndiContext = new InitialContext(env);
...
private Topic getOrCreateTopic(String name) throws EventTransportException {
Topic endResult = null;
System.out.println("EventTransportJBossJMSImpl: Trying to acquire topic '" + name + "'...");
try {
try {
endResult = (Topic)_jndiContext.lookup("topic/" + name);
System.out.println("EventTransportJBossJMSImpl: Found existing topic '" + name + "'.");
return endResult;
} catch(NamingException ne) {
System.out.println("EventTransportJBossJMSImpl: Creating new topic '" + name + "'...");
RMIAdaptor jmxAccess = (RMIAdaptor)_jndiContext.lookup("jmx/rmi/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.mq:service=DestinationManager");
String[] signature = {"java.lang.String"};
Object[] arguments = {name};
Object result = jmxAccess.invoke(objName, "createTopic", arguments, signature);
endResult = (Topic)_jndiContext.lookup("topic/" + name);
System.out.println("EventTransportJBossJMSImpl: New topic '" + name + "' was created.");
return endResult;
}
} catch(Exception e) {
throw new EventTransportException(e);
}
}
Now, just ignore the bad prototype-like exception handling for a moment and look at the use of the jmxAccess RMIAdaptor from instantiation to the invoke method call. That's how you add a Topic. Removal is just the same, but you use the "removeTopic" method instead of the "createTopic" method. There are ones for Queues too.
Now, what I'm interested in doing is creating a topic hierarchy, such that a topic "X.Y.Z" could be published to, and subscribers could get messages published to that topic with subscription topics like "X.*.Z" or "X.>" That's key to our use of a JMS server, and I haven't been able to find any information that even remotely comes close to describing how JBoss Topics can be grouped or used in tandem. Anyone have any links for me?
Tom Harris