Could not create table
tadejm Feb 20, 2002 3:47 AMHi,
I downloaded and builded the sources of the JBoss 3.0 alpha, because I am interested in using the latest CMP2.0 features (CMR).I am still using the default Hypersonic DB (although in the and we will use Oracle) and trying to deploy an application with a simple one-to-many (order-to-service) ralationship. At the end of the deploy I get a message in the server output:
09:18:40,867 INFO [EnterpriseContextCachePolicy] Cache policy scheduler started
09:18:41,258 INFO [Order] Created table 'Order' successfully.
09:18:41,367 INFO [Service] Created table 'Service' successfully.
09:18:41,367 INFO [J2eeDeployer#Default] Deployed J2EE application: file:/D:/PROJECTS/jboss-all/build/output/jboss-3.0.0alpha/deploy/oss.ear
The strange thing I realised when checking the server.log is that Order was not created at all (although the server out says so)
server.log:
2002-02-20 09:18:41,242 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStartCommand.Order] Executing SQL: CREATE TABLE Order (orderId INTEGER, requestedCompletionDate DATE, orderDate DATE, orderState VARCHAR(256), priority INTEGER, apiClientId VARCHAR(256), actualCompletionDate DATE, orderType VARCHAR(256), description VARCHAR(256), purchaseOrder VARCHAR(256), CONSTRAINT pk_Order PRIMARY KEY (orderId))
2002-02-20 09:18:41,258 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStartCommand.Order] Could not create table Order
java.sql.SQLException: Unexpected token: ORDER in statement [CREATE TABLE Order (orderId INTEGER, requestedCompletionDate DATE, orderDate DATE, orderState VARCHAR(256), priority INTEGER, apiClientId VARCHAR(256), actualCompletionDate DATE, orderType VARCHAR(256), description VARCHAR(256), purchaseOrder VARCHAR(256), CONSTRAINT pk_Order PRIMARY KEY (orderId))]
at org.hsqldb.Trace.getError(Trace.java:180)
at org.hsqldb.Result.(Result.java:175)
at org.hsqldb.jdbcConnection.executeHSQL(jdbcConnection.java:907)
.....................
I know, that JBoss is not realy a DB creation tool, but any way I think that this should work. Does any one know, what the problem is?
The eyb-jar.xml is:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
The OrderManager and NetworkActivator EJBs represent the manager
of service orders at the higher and lower level respectively.
<display-name>Service Provisioning</display-name>
<enterprise-beans>
Stores Services
<display-name>Oss Service</display-name>
<ejb-name>Service</ejb-name>
si.marand.oss.serviceprovisioning.ordermanagement.interfaces.service.ejb.Service
<local-home>si.marand.oss.serviceprovisioning.ordermanagement.interfaces.service.ejb.ServiceHome</local-home>
<ejb-class>si.marand.oss.serviceprovisioning.ordermanagement.impl.service.ejb.ServiceBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
False
<cmp-version>2.x</cmp-version>
<abstract-schema-name>service</abstract-schema-name>
<cmp-field><field-name>serviceId</field-name></cmp-field>
<cmp-field><field-name>serviceState</field-name></cmp-field>
<cmp-field><field-name>subscriberId</field-name></cmp-field>
<cmp-field><field-name>serviceXmlParams</field-name></cmp-field>
<cmp-field><field-name>order</field-name></cmp-field>
<primkey-field>serviceId</primkey-field>
Stores Orders
<display-name>Oss Order</display-name>
<ejb-name>Order</ejb-name>
si.marand.oss.serviceprovisioning.ordermanagement.interfaces.order.ejb.Order
<local-home>si.marand.oss.serviceprovisioning.ordermanagement.interfaces.order.ejb.OrderHome</local-home>
<ejb-class>si.marand.oss.serviceprovisioning.ordermanagement.impl.order.ejb.OrderBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
False
<cmp-version>2.x</cmp-version>
<abstract-schema-name>order</abstract-schema-name>
<cmp-field><field-name>orderId</field-name></cmp-field>
<cmp-field><field-name>orderType</field-name></cmp-field>
<cmp-field><field-name>orderState</field-name></cmp-field>
<cmp-field><field-name>apiClientId</field-name></cmp-field>
<cmp-field><field-name>description</field-name></cmp-field>
<cmp-field><field-name>priority</field-name></cmp-field>
<cmp-field><field-name>requestedCompletionDate</field-name></cmp-field>
<cmp-field><field-name>actualCompletionDate</field-name></cmp-field>
<cmp-field><field-name>orderDate</field-name></cmp-field>
<cmp-field><field-name>purchaseOrder</field-name></cmp-field>
<primkey-field>orderId</primkey-field>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<ejb-name>Service</ejb-name>
<method-name>*</method-name>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<ejb-name>Order</ejb-name>
<method-name>*</method-name>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
<ejb-relation>
<ejb-relation-name>Order-Service</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>order-has-services</ejb-relationship-role-name>
One
<relationship-role-source>
<ejb-name>Order</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>services</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>service-belongsto-order</ejb-relationship-role-name>
Many
<cascade-delete/>
<relationship-role-source>
<ejb-name>Service</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>order</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
</ejb-jar>
Thanks, Tadej.
PS: What CVS version of the JBoss 3.0 server has the most stable and reliable CMP engine. Which one should I get?