[jboss-user] [JBoss Messaging] - Re: Messaging Persistence and Multiple JBoss Instances

timfox do-not-reply at jboss.com
Fri Apr 13 07:49:32 EDT 2007


"rtm333" wrote : Tim,
  | 
  | Thanks for your reply. 
  | 
  | Actually, we do not give any unique ids to the server instances. Where and how could this be done?
  | 
  | 
  | 

This is done in messaging-service.xml:


  | <constructor>
  |          <!-- ServerPeerID -->
  |          <arg type="int" value="0"/>
  |          <!-- DefaultQueueJNDIContext -->
  |          <arg type="java.lang.String" value="/queue"/>
  |          <!-- DefaultTopicJNDIContext -->
  |          <arg type="java.lang.String" value="/topic"/>
  |       </constructor>
  | 

The ServerPeerID needs to be unique for every node.

anonymous wrote : 
  | 
  | To clarify, I'm not talking about some form of clustering. We are using several independent "instances" of JBoss, that are mapped to different ports by the ServiceBindingManager. The instances share a common Sybase database for persisting JMS messages.
  | 
  | 

In this case each instance needs to use its own set of tables.

You're best bet is to use a different schema for each server (you can do this in Oracle not sure about Sybase)

anonymous wrote : 
  | In the meantime we have explored this issue in two directions:
  | 
  | 1. Using an instance specific sybase-persistence-service.xml, that adds a server id column to all JMS persistence tables and uses a (hard-coded) server id in all SQL statements for selections/updates. 
  | 

Sounds prone to error, why not just set up different schemas?

anonymous wrote : 
  | 2. Usage of Apache Derby: This creates an individual copy of the persistence database in each instance's data directory. There are two problems with this approach:
  | 
  | a) JDBC type LONGVARBINARY (used for storing message content) is not compatible to Derby type BLOB, but only to "LONG VARCHAR FOR BIT DATA" with a maximum length of 32700 bytes. 
  | 
  | 

Can you not change the sql properties in the pm config to get this to work?

anonymous wrote : 
  | 
  | b) In method org.jboss.messaging.core.plugin.JDBCPersistenceManager.getBytes(ResultSet rs, int columnIndex) the method rs.getBinaryStream() is invoked twice on the same column (line 4250). This is considered an error by Derby. Workaround: change the second usage to use the first result (i), recompile and use the generated jboss-messaging.jar in jboss-messaging.sar. 
  | 
  | 

Thanks.

Currentlty we don't officially support Derby but if there is sufficient demand we will make all the necessary changes and put it through the QA process to get it to work.

If you like, you could add a feature request for this in JIRA?

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

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



More information about the jboss-user mailing list