Hi,
I've compiled ode trunk and deployed it successfully to ServiceMix 4.3
and 4.4 on Linux. I'm using PostgreSQL as the database - I added an OSGi
fragment to pull in the dependency on org.tranql.connector.postgresql.
With SMX 4.4 on Windows, using the same bundle binaries and
org.apache.ode.jbi.cfg, ode is trying to use the internal derby database
for some reason. Here's my config file:
###################
# C:\ServiceMix44\etc\org.apache.ode.jbi.cfg
ode-jbi.db.mode=INTERNAL
ode-jbi.db.int.mcf=org.tranql.connector.postgresql.PGXAMCF
ode-jbi.db.int.mcf.databaseName=odedev
ode-jbi.db.int.mcf.userName=ode
ode-jbi.db.int.mcf.password=XXXXXXX
ode-jbi.db.int.mcf.serverName=w.x.y.z
# Default is to use JPA
(org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl)
# http://ode.apache.org/smx4-osgi-deployment.html recommends using
# (older) Hibernate code instead
ode-jbi.dao.factory=org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl
ode-jbi.event.listeners=org.apache.ode.bpel.common.evt.DebugBpelEventListener
###################
The properties show up in config:list on the ServiceMix console:
----------------------------------------------------------------
Pid: org.apache.ode.jbi
BundleLocation: file:/C:/ServiceMix44/deploy/ode-jbi-bundle-1.4-SNAPSHOT.jar
Properties:
ode-jbi.event.listeners =
org.apache.ode.bpel.common.evt.DebugBpelEventListener
ode-jbi.db.mode = INTERNAL
service.pid = org.apache.ode.jbi
felix.fileinstall.filename =
file:/C:/ServiceMix44/etc/org.apache.ode.jbi.cfg
ode-jbi.dao.factory =
org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl
ode-jbi.db.int.mcf = org.tranql.connector.postgresql.PGXAMCF
ode-jbi.db.int.mcf.userName = ode
ode-jbi.db.int.mcf.password = XXXXXXX
ode-jbi.db.int.mcf.databaseName = odedev
ode-jbi.db.int.mcf.serverName = w.x.y.z
----------------------------------------------------------------
Below is a snippet from the logs showing ODE trying to use Derby instead
of PostgreSQL. Any ideas where to look next? I'm new to ODE and
ServiceMix, and troubleshooting anything under Windows feels like
breathing underwater.
2011-08-12 18:37:27,697 DEBUG [SpringOsgiExtenderThread-20]
(TempFileManager.java:113) - Setting base working directory:
C:\ServiceMix44\data\jbi\OdeBpelEngine\workspace
2011-08-12 18:37:27,697 DEBUG [SpringOsgiExtenderThread-20]
(OdeLifeCycle.java:118) - Applying properties.
2011-08-12 18:37:27,713 DEBUG [SpringOsgiExtenderThread-20]
(OdeLifeCycle.java:122) - Initializing message mappers.
2011-08-12 18:37:27,713 DEBUG [SpringOsgiExtenderThread-20]
(OdeLifeCycle.java:125) - Creating data source.
2011-08-12 18:37:27,713 INFO [SpringOsgiExtenderThread-20]
(InternalDB.java:101) - ODE using internal database
"jdbc:derby://localhost/ode" with driver org.apache.derby.jdbc.ClientDriver.
2011-08-12 18:37:27,713 DEBUG [SpringOsgiExtenderThread-20]
(InternalDB.java:108) - Creating connection pool for
jdbc:derby://localhost/ode with driver org.apache.derby.jdbc.ClientDriver
2011-08-12 18:37:27,713 ERROR [SpringOsgiExtenderThread-20]
(OdeLifeCycle.java:191) - Database configuration error.
java.lang.RuntimeException: TransactionManager is not recoverable.
at
org.apache.ode.il.dbutil.InternalDB.initInternalDb(InternalDB.java:110)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.il.dbutil.InternalDB.initDataSource(InternalDB.java:102)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.il.dbutil.InternalDB.start(InternalDB.java:61)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.OdeLifeCycle.initDataSource(OdeLifeCycle.java:188)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.OdeLifeCycle.init(OdeLifeCycle.java:126)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.servicemix.jbi.deployer.artifacts.ComponentImpl$ComponentWrapper.init(ComponentImpl.java:247)[145:org.apache.servicemix.jbi.deployer:1.5.0.fuse-00-43]
Thanks,
Mike