# JBoss und DB2-Express



## tuomo (23. Jun 2008)

Hallo JavaPeople,

 ich bin gerade auf JBoss um- bzw. eingestiegen, und versuche eine DB2-Express DB ranzuhängen. Aber irgendwie funktioniert das nicht.

Ich habe mich an die Anleitung aus der JBoss Server Configuration 4.2.0 - Doku gehalten (auch schon mehrmals), aber leider ohne Erfolg. Bei mir gestaltet sich das so, dass JBoss lediglich 5 Tabellen anlegt:

 - HILOSEQUENCES
 - JMS_MESSAGES
 - JMS_ROLES
 - JMS_TRANSACTIONS
 - TIMERS

Tabellen wie JMS_USER oder JMS_SUBSCRIPTIONS fehlen.

Hat jemand eine Idee, warum die fünf Tabellen erstellt werden und die anderen nicht? Vielleicht muss ich ja auch noch was konfigurieren, was in der Doku nicht erwähnt wurde.

Ich hoffe auf Eure Erfahrung und Hilfe,
Danke für Eure Zeit!


----------



## FArt (23. Jun 2008)

Schau mal in die Deploymentdeskripten der JMS Service MBeans unter deploy/jms.

Da tauchen so Attribute auf wie CREATE_TABLES_ON_STARTUP. Stelle sicher, dass diese auf TRUE sind.
Stelle sicher, dass JMS deine Datesource als persistent store verwendet.
Kontrolliere das Logfiles, ob Fehler auftreten, z.B. wenn Tabellen nicht erstellt werden könnne.


----------



## tuomo (23. Jun 2008)

Also CREATE_TABLES_ON_STARTUP steht auf true.

Ob die DataSource als persistentStore verwendet wird, weiß ich nicht genau, da ich nicht so recht weiß, wo ich das nachschaun kann. Hab schon danach suchen lassen, hat mir aber irgendwie nur anderen Kram angezeigt.

Aber da ich daran nichts geändert habe, kann man davon ausgehen, dass, wenn persistentStore der Default-Wert ist, die DataSource als persistentStore läuft.

Wenn ich den JBoss starte, dann bekomme ich u.a. folgende Fehlermeldung:

15:51:32,937 WARN  [ServiceController] Problem starting service jboss.mq.destination:service=Topic,name=LoggingTopic
org.jboss.mq.SpyJMSException: Error getting durable subscriptions for topic TOPIC.LoggingTopic; - nested throwable: (com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DVELOP.JMS_SUBSCRIPTIONS, DRIVER=3.50.152)

Rührt wahrscheinlich daher, dass es die JMS_SUBSCRIPTIONS-Tabelle gar nicht gibt.

Im LogFile steht zB. die Fehlermeldung:
2008-06-23 15:51:32,515 DEBUG [org.jboss.mq.pm.jdbc2.PersistenceManager] Could not create table with SQL: CREATE TABLE JMS_MESSAGES (MESSAGEID INTEGER NOT NULL, DESTINATION VARCHAR(150) NOT NULL, TXID INTEGER, TXOP CHAR(1), MESSAGEBLOB BLOB(1024M), PRIMARY KEY (MESSAGEID, DESTINATION))
com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-601, SQLSTATE=42710, SQLERRMC=DVELOP.JMS_MESSAGES;TABLE, DRIVER=3.50.152
, da diese Tabelle schon in der Datenbank exsistiert. Für JMS_SUBSCRIPTIONS gibt es nur die Fehlermeldung von der Konsole. Die will er gar nicht erst versuchen anzulegen.

Irgendwie komm ich da bei dem Verhalten nicht mit. Wenn er keine Tabellen anlegen könnte, warum legt er 5 an? Und wenn er Tabellen anlegen kann, warum nicht alle die er braucht???


----------

