Hi,

THREE PROBLEMS - All arising from trying to use SYBASE ASE as the message 
persistence engine rather than HSQL.  

I'm using JBOSS 4.2.2-GA on Solaris10 with JDK1.5.0_12 and Sybase ASE 12.5.0.3, 
EBF 10977, ESD #1/P/HP9000-879/HP-UX11.0/rel12503/1919/64-bit

Problem - 1. I can't get the DestinationManager to deploy because the 
StateManager does not appear to deploy correctly, the final message in 
server.log being:
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.jca:service=DataSourceBinding,name=SybaseMMDB
  State: NOTYETINSTALLED
  Depends On Me:
    jboss.mq:service=StateManager
I can't see any errors or failures to deploy of any MBeans further up the log.

2. The Hypersonic connection now takes around 20min to start up and appears to 
be the cause of JBOSS hanging on shutdown and never completely shutting down 
unless I use 'kill -9' on the running JVM.  (Last few lines of log
2008-04-23 16:24:07,828 DEBUG 
[org.jboss.resource.connectionmanager.RARDeployment] Stopping 
jboss.jca:service=ManagedConnectionFactory,name=DefaultDS
2008-04-23 16:24:07,828 DEBUG 
[org.jboss.resource.connectionmanager.RARDeployment] Stopped 
jboss.jca:service=ManagedConnectionFactory,name=DefaultDS
2008-04-23 16:24:07,829 DEBUG [org.jboss.jdbc.HypersonicDatabase] Stopping 
jboss:service=Hypersonic,database=localDB
2008-04-23 16:24:08,954 DEBUG 
[org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread] Shutdown
2008-04-23 16:24:33,114 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] 
Periodic recovery - first pass <Wed, 23 Apr 2008 16:24:33>
2008-04-23 16:24:33,115 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] 
StatusModule: first pass 
2008-04-23 16:24:33,115 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] 
[com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3] - TORecoveryModule - 
first pass
2008-04-23 16:24:33,116 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] 
[com.arjuna.ats.internal.jta.recovery.info.firstpass] Local XARecoveryModule - 
first pass
)

3. I have successfully configured a SYBASE datsource (SybaseMMDB) and JBOSS can 
connect to it.  The sybase-jdbc2-service.xml copied from the examples area and 
modified with my database name etc reads as listed below but failed to deploy 
because Sybase ASE didn't like this SQL with a subquery (SELECT_MAX_TX = SELECT 
MAX(X.TXID) FROM (SELECT MAX(TXID) AS TXID FROM g1_mm_dev..JMS_TRANSACTIONS 
UNION SELECT MAX(TXID) AS TXID FROM g1_mm_dev..JMS_MESSAGES) X).  I got past 
this problem by creating a view with the union (not bothered about the 
performance just yet...) and then changing the SQL to 

SELECT MAX_VAL FROM JMS_HIGHEST_NUM

Is there an ASE setting on SYBASE that 'turns on' support for subqueries?  They 
do work on other ASEs running on different boxes here but I don't have access 
to them.  Assuming my workaround is ok, how come the DestinationManager still 
won't deploy?

***sybase-jdbc2-service.xml***:
<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <!-- $Id: sybase-jdbc2-service.xml 61575 2007-03-22 14:35:46Z [EMAIL 
PROTECTED] $ -->
  | 
  | <server>
  |   <!-- ==================================================================== 
-->
  |   <!-- Persistence and caching using Sybase                                 
-->
  |   <!-- Based on configuration provided by amresh.deshmukh at drkw.com       
-->
  |   <!-- ==================================================================== 
-->
  | 
  |   <!--
  |      | 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.
  |      |
  |      | Take care that the selected blob column type in jms_messages 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.jdbc2.PersistenceManager"
  |      name="jboss.mq:service=PersistenceManager">
  |       <depends 
optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=jdbc/SybaseMMDB</depends>
  |       <attribute name="SqlProperties">
  |       BLOB_TYPE=BYTES_BLOB
  |       INSERT_TX = INSERT INTO g1_mm_dev..JMS_TRANSACTIONS (TXID) values(?)
  |       INSERT_MESSAGE = INSERT INTO g1_mm_dev..JMS_MESSAGES (MESSAGEID, 
DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)
  |       SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM 
g1_mm_dev..JMS_TRANSACTIONS
  |      SELECT_MAX_TX = SELECT MAX(X.TXID) FROM (SELECT MAX(TXID) AS TXID FROM 
g1_mm_dev..JMS_TRANSACTIONS UNION SELECT MAX(TXID) AS TXID FROM 
g1_mm_dev..JMS_MESSAGES) X
  |       DELETE_ALL_TX = DELETE FROM g1_mm_dev..JMS_TRANSACTIONS
  |      SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM 
g1_mm_dev..JMS_MESSAGES WHERE DESTINATION=?
  |       SELECT_MESSAGE_KEYS_IN_DEST = SELECT MESSAGEID FROM 
g1_mm_dev..JMS_MESSAGES WHERE DESTINATION=?
  |       SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM 
g1_mm_dev..JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
  |       MARK_MESSAGE = UPDATE g1_mm_dev..JMS_MESSAGES SET TXID=?, TXOP=? 
WHERE MESSAGEID=? AND DESTINATION=?
  |       UPDATE_MESSAGE = UPDATE g1_mm_dev..JMS_MESSAGES SET MESSAGEBLOB=? 
WHERE MESSAGEID=? AND DESTINATION=?
  |       UPDATE_MARKED_MESSAGES = UPDATE g1_mm_dev..JMS_MESSAGES SET TXID=?, 
TXOP=? WHERE TXOP=?
  |       UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE g1_mm_dev..JMS_MESSAGES SET 
TXID=?, TXOP=? WHERE TXOP=? AND TXID=?
  |       DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM g1_mm_dev..JMS_MESSAGES 
WHERE TXID IN (SELECT TXID FROM g1_mm_dev..JMS_TRANSACTIONS) AND TXOP=?
  |       DELETE_TX = DELETE FROM g1_mm_dev..JMS_TRANSACTIONS WHERE TXID = ?
  |       DELETE_MARKED_MESSAGES = DELETE FROM g1_mm_dev..JMS_MESSAGES WHERE 
TXID=? AND TXOP=?
  |       DELETE_TEMPORARY_MESSAGES = DELETE FROM g1_mm_dev..JMS_MESSAGES WHERE 
TXOP='T'
  |       DELETE_MESSAGE = DELETE FROM g1_mm_dev..JMS_MESSAGES WHERE 
MESSAGEID=? AND DESTINATION=?
  |       CREATE_MESSAGE_TABLE = CREATE TABLE g1_mm_dev..JMS_MESSAGES ( 
MESSAGEID INTEGER NOT NULL, \
  |          DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER NULL, TXOP CHAR(1) 
NOT NULL, \
  |          MESSAGEBLOB IMAGE NOT NULL, PRIMARY KEY (MESSAGEID, DESTINATION) ) 
LOCK DATAROWS
  |       CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON 
g1_mm_dev..JMS_MESSAGES (TXOP, TXID)
  |       CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX 
JMS_MESSAGES_DESTINATION ON g1_mm_dev..JMS_MESSAGES (DESTINATION)
  |       CREATE_TX_TABLE = CREATE TABLE g1_mm_dev..JMS_TRANSACTIONS ( TXID 
INTEGER NOT NULL, PRIMARY KEY (TXID) ) \
  |          LOCK DATAROWS
  |       CREATE_TABLES_ON_STARTUP = FALSE
  |       </attribute>
  |     <!-- Uncomment to override the transaction timeout for recovery per 
queue/subscription, in seconds -->
  |     <!--attribute name="RecoveryTimeout">0</attribute-->
  |     <!-- The number of blobs to load at once during message recovery -->
  |     <attribute name="RecoverMessagesChunk">0</attribute>
  |     </mbean>
  | </server>
  | 
  | 

Any info appreciated!
Dan

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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4146248
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to