[jboss-user] [JBoss Messaging Users] - sybase-persistence-service.xml

bdamato do-not-reply at jboss.com
Tue Nov 3 10:42:11 EST 2009


I'm trying to switch from hypersonic to sybase. I've replaced the hsqldb-ds.xml with a copy of the sybase-ds.xml configured as my DefaultDS (it's working fine).  I've also replaced the hsqldb-persistence-service.xml with a copy of sybase-persistence-service.xml. For some reason, when the server is booting, it doesn't create the JBM_ID_CACHE table for me and I get this error message (it's the first exception in my server.log).


  | 10:22:14,629 ERROR [ExceptionUtil] ServerPeer[0] startService
  | com.sybase.jdbc3.jdbc.SybSQLException: JBM_ID_CACHE not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).
  | 

It does manage to create these tables:
HILOSEQUENCES
JBM_DUAL
JBM_USER
TIMERS

I'm using Sybase ASE 15, JBoss 5.1.0.GA on solaris using JDK1.6.0_14 64-bit. 

Here are my two files:

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <!-- ===================================================================== -->
  | <!--                                                                       -->
  | <!--  JBoss Server Configuration                                           -->
  | <!--                                                                       -->
  | <!-- New ConnectionManager setup for Sybase ASE/ASA jConnect driver        -->
  | <!-- Thanks to Marc Zampetti <zampetti at aol.net>                            -->
  | <!-- This is a minimal example.  See the generic example for other stuff   -->
  | <!-- ===================================================================== -->
  | 
  | <!-- See http://www.jboss.org/community/wiki/Multiple1PC for information about local-tx-datasource -->
  | <!-- $Id: sybase-ds.xml 88948 2009-05-15 14:09:08Z jesper.pedersen $ -->
  | 
  | 
  | <datasources>
  |   <local-tx-datasource>
  |     <jndi-name>DefaultDS</jndi-name>
  |     <!-- Sybase jConnect URL for the database. 
  |     NOTE: The hostname and port are made up values. The optional
  |           database name is provided, as well as some additinal Driver
  |           parameters.
  |     -->
  |     <connection-url>jdbc:sybase:Tds:XXXXX:4100/XXXX?JCONNECT_VERSION=6</connection-url>
  |     <driver-class>com.sybase.jdbc3.jdbc.SybDataSource</driver-class>
  |     <user-name>XXX</user-name>
  |     <password>XXXXX</password>
  | 
  |     <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
  |     <min-pool-size>5</min-pool-size>
  |     <!-- The maximum connections in a pool/sub-pool -->
  |     <max-pool-size>50</max-pool-size>
  |     <!-- The time before an unused connection is destroyed -->
  |     <idle-timeout-minutes>5</idle-timeout-minutes>
  | 
  |     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.SybaseExceptionSorter</exception-sorter-class-name>
  |     <!-- sql to call when connection is created -->
  |     <new-connection-sql>select 1</new-connection-sql>
  | 
  |     <!-- sql to call on an existing pooled connection when it is obtained from pool -->
  |     <check-valid-connection-sql>select 1</check-valid-connection-sql>
  | 
  |     <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
  |     <metadata>
  |        <type-mapping>Sybase</type-mapping>
  |     </metadata>
  |   </local-tx-datasource>
  | </datasources>
  | 
  | 


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <!--
  |      Sybase persistence deployment descriptor.
  | 
  |      Tested with Sybase Adaptive Server Enterprise 12.5.3
  | 
  |      $Id$
  |  -->
  | 
  | <server>
  | 
  |    <!-- Persistence Manager MBean configuration
  |        ======================================== -->
  | 
  |    <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
  |       name="jboss.messaging:service=PersistenceManager"
  |       xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
  | 
  |       <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
  | 
  |       <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
  | 
  |       <!-- The datasource to use for the persistence manager -->
  | 
  |       <attribute name="DataSource">java:/DefaultDS</attribute>
  | 
  |       <!-- If true will attempt to create tables and indexes on every start-up -->
  | 
  |       <attribute name="CreateTablesOnStartup">true</attribute>
  | 
  |       <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
  | 
  |       <attribute name="DetectDuplicates">true</attribute>
  | 
  |       <!-- The size of the id cache to use when detecting duplicate messages -->
  | 
  |       <attribute name="IDCacheSize">500</attribute>
  | 
  |       <!-- If true then will add a trailing byte to all byte arrays otherwise Sybase truncates them
  |            Only known to be necessary for Sybase -->
  | 
  |       <attribute name="UsingTrailingByte">true</attribute>
  | 
  |       <attribute name="SqlProperties"><![CDATA[
  |    CREATE_DUAL=CREATE TABLE JBM_DUAL (DUAL_DUMMY INTEGER NOT NULL, PRIMARY KEY (DUAL_DUMMY))
  |    CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID DECIMAL(19, 0) NOT NULL, CHANNEL_ID DECIMAL(19, 0) NOT NULL, TRANSACTION_ID DECIMAL(19, 0) NULL, STATE CHAR(1), ORD DECIMAL(19, 0), PAGE_ORD DECIMAL(19, 0) NULL, DELIVERY_COUNT INTEGER, SCHED_DELIVERY DECIMAL(19, 0), PRIMARY KEY(MESSAGE_ID, CHANNEL_ID))
  |    CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
  |    CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID DECIMAL(19, 0) NOT NULL, RELIABLE CHAR(1), EXPIRATION DECIMAL(19, 0), TIMESTAMP DECIMAL(19, 0), PRIORITY TINYINT, TYPE TINYINT, HEADERS IMAGE NULL, PAYLOAD IMAGE NULL, PRIMARY KEY (MESSAGE_ID))
  |    CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID DECIMAL(19, 0) NOT NULL, BRANCH_QUAL VARBINARY(254) NULL, FORMAT_ID INTEGER NULL, GLOBAL_TXID VARBINARY(254) NULL, PRIMARY KEY (TRANSACTION_ID))
  |    CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255) NOT NULL, NEXT_ID DECIMAL(19, 0), PRIMARY KEY(NAME))
  |    CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER NOT NULL, CNTR INTEGER NOT NULL, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR))
  |    INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
  |    CHECK_DUAL=SELECT 1 FROM JBM_DUAL
  |    INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
  |    DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
  |    UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
  |    UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
  |    COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
  |    COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
  |    ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
  |    ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
  |    LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
  |    LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? AND PAGE_ORD IS NULL ORDER BY ORD
  |    LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
  |    UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
  |    SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
  |    UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
  |    UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
  |    MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
  |    LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
  |    INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
  |    INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
  |    UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
  |    INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
  |    MESSAGE_ID_COLUMN=MESSAGE_ID
  |    DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
  |    INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
  |    DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
  |    SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
  |    SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
  |    SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
  |    UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
  |    SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER HOLDLOCK WHERE NAME=?
  |    INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
  |    SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
  |    UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
  |    UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
  |    INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
  |    LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
  |       ]]></attribute>
  | 
  |       <!-- The maximum number of parameters to include in a prepared statement -->
  | 
  |       <attribute name="MaxParams">500</attribute>
  | 
  |    </mbean>
  | 
  |    <!-- Messaging Post Office MBean configuration
  |         ========================================= -->
  | 
  |    <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
  |       name="jboss.messaging:service=PostOffice"
  |       xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
  | 
  |       <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  | 
  |       <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
  | 
  |       <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
  | 
  |       <!-- The name of the post office -->
  | 
  |       <attribute name="PostOfficeName">JMS post office</attribute>
  | 
  |       <!-- The datasource used by the post office to access it's binding information -->
  | 
  |       <attribute name="DataSource">java:/DefaultDS</attribute>
  | 
  |       <!-- If true will attempt to create tables and indexes on every start-up -->
  | 
  |       <attribute name="CreateTablesOnStartup">true</attribute>
  | 
  |       <attribute name="SqlProperties"><![CDATA[
  | CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID SMALLINT, QUEUE_NAME VARCHAR(255), COND VARCHAR(1023), SELECTOR VARCHAR(1023) NULL, CHANNEL_ID INTEGER, CLSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME))
  | INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
  | DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
  | LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
  |       ]]></attribute>
  | 
  |       <!-- This post office is non clustered. If you want a clustered post office then set to true -->
  | 
  |       <attribute name="Clustered">false</attribute>
  | 
  |       <!-- All the remaining properties only have to be specified if the post office is clustered.
  |            You can safely comment them out if your post office is non clustered -->
  | 
  |       <!-- The JGroups group name that the post office will use -->
  | 
  |       <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
  | 
  |       <!-- Max time to wait for state to arrive when the post office joins the cluster -->
  | 
  |       <attribute name="StateTimeout">30000</attribute>
  | 
  |       <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
  | 
  |       <attribute name="CastTimeout">30000</attribute>
  |       
  |       <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
  |       
  |       <attribute name="FailoverOnNodeLeave">false</attribute>
  |       
  |       <depends optional-attribute-name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</depends>
  |       <attribute name="ControlChannelName">jbm-control</attribute>
  |       <attribute name="DataChannelName">jbm-data</attribute>
  |       <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
  |    </mbean>
  | 
  |    <!-- Messaging JMS User Manager MBean config
  |         ======================================= -->
  | 
  |    <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
  |       name="jboss.messaging:service=JMSUserManager"
  |       xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
  |       <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
  |       <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
  |       <attribute name="DataSource">java:/DefaultDS</attribute>
  |       <attribute name="CreateTablesOnStartup">true</attribute>
  |       <attribute name="SqlProperties"><![CDATA[
  | CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
  | CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
  | SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
  | POPULATE.TABLES.1  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
  | POPULATE.TABLES.2  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
  | POPULATE.TABLES.3  = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
  | POPULATE.TABLES.4  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
  | POPULATE.TABLES.5  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
  | POPULATE.TABLES.6  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
  | POPULATE.TABLES.7  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
  | POPULATE.TABLES.8  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
  | POPULATE.TABLES.9  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
  | POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
  | POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
  | POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
  | POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
  | POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
  |       ]]></attribute>
  |    </mbean>
  | 
  | </server>
  | 
  | 

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

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



More information about the jboss-user mailing list