I am successfully using PostgreSQL with JBoss 4.0.3 + EJB3 (all) for JMS and 
the persistence layer. You need to do the following:

* Start PgSQL and create a new DB called "jms"
* remove the sample destinations: 
deploy-hasingleton/jms/jbossmq-destinations-service.xml
* remove the HSQL JMS persistence: deploy-hasingleton/jms/hsqldb*
* deploy a datasource (called jmsDS) for the PostgreSQL DB used for JMS:

  | <?xml version="1.0" encoding="UTF-8"?>
  | <datasources>
  |   <local-tx-datasource>
  |     <jndi-name>jmsDS</jndi-name>
  |     <use-java-context>true</use-java-context>
  |     <connection-url>jdbc:postgresql://localhost:5432/jms</connection-url>
  |     <driver-class>org.postgresql.Driver</driver-class>
  |     
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
  |     <user-name>postgres</user-name>
  |     <password>password</password>
  |     <min-pool-size>1</min-pool-size>
  |     <max-pool-size>10</max-pool-size>
  |     <metadata>
  |       <type-mapping>PostgreSQL 8.0</type-mapping>
  |     </metadata>
  |   </local-tx-datasource>
  | </datasources>
  | 
* deploy a datasource for your persistence layer
* add JDBC drivers for PgSQL to server/all/lib
* deploy the PgSQL JMS persistence: 
deploy-hasingleton/jms/pgsql-jdbc-service.xml:

  | <?xml version="1.0" encoding="UTF-8"?>
  | <server>
  |   
  |  
  |   <!-- ==================================================================== 
-->
  |   <!-- Persistence and caching using PostgreSQL                             
-->
  |   <!-- ==================================================================== 
-->
  | 
  |   <!--
  |      | The destination manager is the core service within JBossMQ
  |   -->
  |   <mbean code="org.jboss.mq.server.jmx.DestinationManager" 
name="jboss.mq:service=DestinationManager">
  |     <depends 
optional-attribute-name="MessageCache">jboss.mq:service=MessageCache</depends>
  |     <depends 
optional-attribute-name="PersistenceManager">jboss.mq:service=PersistenceManager</depends>
  |     <depends 
optional-attribute-name="StateManager">jboss.mq:service=StateManager</depends>
  |   </mbean>
  | 
  |   <!--
  |      | The MessageCache decides where to put JBossMQ message that
  |      | are sitting around waiting to be consumed by a client.
  |      |
  |      | The memory marks are in Megabytes.  Once the JVM memory usage hits
  |      | the high memory mark, the old messages in the cache will start 
getting
  |      | stored in the DataDirectory.  As memory usage gets closer to the
  |      | Max memory mark, the amount of message kept in the memory cache 
aproaches 0.
  |    -->
  |   <mbean code="org.jboss.mq.server.MessageCache" 
name="jboss.mq:service=MessageCache">
  |     <attribute name="HighMemoryMark">50</attribute>
  |     <attribute name="MaxMemoryMark">60</attribute>
  |     <attribute 
name="CacheStore">jboss.mq:service=PersistenceManager</attribute>
  |   </mbean>
  | 
  |   <!-- 
  |      | The jdbc2 PersistenceManager is the new improved JDBC implementation.
  |      | This implementation allows you to control how messages are stored in 
  |      | the database.
  |      |
  |      | Use this PM if you want the reliablity a relational database can 
offer
  |      | you.  The default configuration is known to work with hsqldb, other
  |      | databases will requrie teaking of the SqlProperties e.g. changing 
table
  |      | colum definitions to database supported types.
  |      |
  |      | Take care that the selected blob column type can store
  |      | all message data. Some databases (e.g. mySQL) offer blob types with
  |      | different maximum capacity (e.g. mySQL-type BLOB=64K, LONGBLOB=2G).
  |      |
  |      | If you encouter problems with the configured BLOB_TYPE try a 
different
  |      | setting. Valid settings are OBJECT_BLOB, BINARYSTREAM_BLOB and 
BYTES_BLOB.
  |    -->
  |   <mbean code="org.jboss.mq.pm.jdbc3.PersistenceManager" 
name="jboss.mq:service=PersistenceManager">
  |     <depends 
optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=jmsDS</depends>
  |     <attribute name="SqlProperties">
  |       BLOB_TYPE=BINARYSTREAM_BLOB
  |       UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGE_LOG SET TXID=?, TXOP=? 
WHERE TXOP=?
  |       UPDATE_MARKED_REFERENCES = UPDATE JMS_REFERENCE_LOG SET TXID=?, 
TXOP=? WHERE TXOP=?
  |       UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGE_LOG SET TXID=?, 
TXOP=? WHERE TXOP=? AND TXID=?
  |       UPDATE_MARKED_REFERENCES_WITH_TX = UPDATE JMS_REFERENCE_LOG SET 
TXID=?, TXOP=? WHERE TXOP=? AND TXID=?
  |       DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGE_LOG WHERE 
TXID IN (SELECT TXID FROM JMS_TRANSACTION_LOG) AND TXOP=?
  |       DELETE_MARKED_REFERENCES_WITH_TX = DELETE FROM JMS_REFERENCE_LOG 
WHERE TXID IN (SELECT TXID FROM JMS_TRANSACTION_LOG) AND TXOP=?
  |       DELETE_TX = DELETE FROM JMS_TRANSACTION_LOG WHERE TXID = ?
  |       DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGE_LOG WHERE TXID=? AND 
TXOP=?
  |       DELETE_MARKED_REFERENCES = DELETE FROM JMS_REFERENCE_LOG WHERE TXID=? 
AND TXOP=?
  |       DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGE_LOG WHERE TXOP='T'
  |       DELETE_TEMPORARY_REFERENCES = DELETE FROM JMS_REFERENCE_LOG WHERE 
TXOP='T'
  |       INSERT_TX = INSERT INTO JMS_TRANSACTION_LOG (TXID) values(?)
  |       SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_TRANSACTION_LOG
  |       SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM 
JMS_MESSAGE_LOG WHERE DESTINATION=?
  |       SELECT_REFERENCES_IN_DEST = SELECT R.MESSAGEID, M.MESSAGEBLOB, 
R.REDELIVERED, R.REDELIVERS FROM JMS_REFERENCE_LOG R, JMS_MESSAGE_LOG M \
  |                                   WHERE R.MESSAGEID = M.MESSAGEID AND 
R.DESTINATION=?
  |       SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGE_LOG 
WHERE MESSAGEID=? AND DESTINATION=?
  |       INSERT_MESSAGE = INSERT INTO JMS_MESSAGE_LOG (MESSAGEID, DESTINATION, 
MESSAGEBLOB, TXID, TXOP, LATECLONE) VALUES(?,?,?,?,?,?)
  |       INSERT_REFERENCE = INSERT INTO JMS_REFERENCE_LOG (MESSAGEID, 
DESTINATION, TXID, TXOP, REDELIVERED, REDELIVERS) VALUES(?,?,?,?,?,?)
  |       MARK_MESSAGE = UPDATE JMS_MESSAGE_LOG SET TXID=?, TXOP=? WHERE 
MESSAGEID=? AND DESTINATION=?
  |       MARK_REFERENCE = UPDATE JMS_REFERENCE_LOG SET TXID=?, TXOP=? WHERE 
MESSAGEID=? AND DESTINATION=?
  |       DELETE_MESSAGE = DELETE FROM JMS_MESSAGE_LOG WHERE MESSAGEID=? AND 
DESTINATION=?
  |       DELETE_REFERENCE = DELETE FROM JMS_REFERENCE_LOG WHERE MESSAGEID=? 
AND DESTINATION=?
  |       UPDATE_MESSAGE = UPDATE JMS_MESSAGE_LOG SET MESSAGEBLOB=? WHERE 
MESSAGEID=? AND DESTINATION=?
  |       UPDATE_REFERENCE = UPDATE JMS_REFERENCE_LOG SET REDELIVERED=?, 
REDELIVERS=? WHERE MESSAGEID=? AND DESTINATION=?
  |       DELETE_ORPHANED_MESSAGES = DELETE FROM JMS_MESSAGE_LOG WHERE 
LATECLONE = '1' AND MESSAGEID NOT IN (SELECT MESSAGEID FROM JMS_REFERENCE_LOG)
  |       DELETE_ALL_TXS = DELETE FROM JMS_TRANSACTION_LOG
  |       CREATE_REFERENCE_TABLE = CREATE TABLE JMS_REFERENCE_LOG ( MESSAGEID 
INTEGER NOT NULL, \
  |              DESTINATION VARCHAR(4000) NOT NULL, TXID INTEGER, TXOP 
CHAR(1), REDELIVERED CHAR(1), \
  |              REDELIVERS INTEGER, PRIMARY KEY (MESSAGEID, DESTINATION) )
  |       CREATE_MESSAGE_TABLE = CREATE TABLE JMS_MESSAGE_LOG ( MESSAGEID 
INTEGER NOT NULL, DESTINATION VARCHAR(255) NOT NULL, \
  |          TXID INTEGER, TXOP CHAR(1), LATECLONE CHAR(1), MESSAGEBLOB BYTEA, 
PRIMARY KEY (MESSAGEID, DESTINATION) )
  |       CREATE_TX_TABLE = CREATE TABLE JMS_TRANSACTION_LOG ( TXID INTEGER )
  |       CREATE_TABLES_ON_STARTUP = TRUE
  |     </attribute>
  |   </mbean>
  |   
  |   <mbean code="org.jboss.mq.sm.jdbc.JDBCStateManager" 
name="jboss.mq:service=StateManager">
  |     <depends 
optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=jmsDS</depends>
  |     <attribute name="SqlProperties">
  |       CREATE_TABLES_ON_STARTUP = TRUE
  |       CREATE_USER_TABLE = CREATE TABLE JMS_USERS (USERID VARCHAR(32) NOT 
NULL, PASSWD VARCHAR(32) NOT NULL, \
  |                                                  CLIENTID VARCHAR(128), 
PRIMARY KEY(USERID))
  |       CREATE_ROLE_TABLE = CREATE TABLE JMS_ROLES (ROLEID VARCHAR(32) NOT 
NULL, USERID VARCHAR(32) NOT NULL, \
  |                                                  PRIMARY KEY(USERID, 
ROLEID))
  |       CREATE_SUBSCRIPTION_TABLE = CREATE TABLE JMS_SUBSCRIPTIONS (CLIENTID 
VARCHAR(128) NOT NULL, \
  |                                                  SUBNAME VARCHAR(128) NOT 
NULL, TOPIC VARCHAR(255) NOT NULL, \
  |                                                  SELECTOR VARCHAR(4000), 
PRIMARY KEY(CLIENTID, SUBNAME))
  |       GET_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS 
WHERE CLIENTID=? AND SUBNAME=?
  |       LOCK_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS 
WHERE CLIENTID=? AND SUBNAME=?
  |       GET_SUBSCRIPTIONS_FOR_TOPIC = SELECT CLIENTID, SUBNAME, SELECTOR FROM 
JMS_SUBSCRIPTIONS WHERE TOPIC=?
  |       INSERT_SUBSCRIPTION = INSERT INTO JMS_SUBSCRIPTIONS (CLIENTID, 
SUBNAME, TOPIC, SELECTOR) VALUES(?,?,?,?)
  |       UPDATE_SUBSCRIPTION = UPDATE JMS_SUBSCRIPTIONS SET TOPIC=?, 
SELECTOR=? WHERE CLIENTID=? AND SUBNAME=?
  |       REMOVE_SUBSCRIPTION = DELETE FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? 
AND SUBNAME=?
  |       GET_USER_BY_CLIENTID = SELECT USERID, PASSWD, CLIENTID FROM JMS_USERS 
WHERE CLIENTID=?
  |       GET_USER = SELECT PASSWD, CLIENTID FROM JMS_USERS WHERE USERID=?
  |       POPULATE.TABLES.01 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES 
('guest', 'guest')
  |       POPULATE.TABLES.02 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES 
('j2ee', 'j2ee')
  |       POPULATE.TABLES.04 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES 
('nobody', 'nobody')
  |       POPULATE.TABLES.06 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES 
('guest','guest')
  |       POPULATE.TABLES.14 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES 
('noacc','nobody')
  |     </attribute>
  |   </mbean>  
  | </server>
  | 

* change login-config.xml to use jmsDS for jbossmq realm


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

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


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to