You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Dmitry Litvintsev <li...@fnal.gov> on 2006/04/19 01:43:14 UTC

newbie problems


Hi, 

I am developing a java application and I am considering OJB technology to 
store objects' states seamlessly in the PostgreSQL database. 

In short I am failing to get tutorial5 up and running. I followed 
instructions on this link:

	http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html

My actions:

	1) downloaded ojb-blank.jar
	2) downloaded tutorial5-src.jar
	3) downloaded db-ojb-1.0.4.jar
	4) downloaded jdo.jar,jdori-enhancer.jar,jdori.jar (jdo 1.0.1 RI)
	5) downloaded PostgreSQL drivers pg74.216.jdbc3.jar postgresql-8.1-405.jdbc3.jar 

my top directory is "ojb-blank"
I put *jar files into lib (ojb-blank/lib)
I put tutorial5 sources to (ojb_blank/src/java/org/apache/ojb/tutorial5)

I modified buid.properties, so it looks like this:

	jcdAlias=default
	databaseName=ojb
	databaseUser=postgres
	databasePassword=

	dbmsName=PostgreSQL
	jdbcLevel=3.0
	jdbcRuntimeDriver=org.postgresql.Driver
	urlProtocol=jdbc
	urlSubprotocol=postgresql
	urlDbalias=//localhost/${databaseName}

	torque.database=postgresql
	torque.database.createUrl=${urlProtocol}:${urlSubprotocol}:${urlDbalias}

	jar.name=my-project.jar

	source.dir=src
	source.java.dir=${source.dir}/java
	source.resource.dir=${source.dir}/resources
	source.test.dir=${source.dir}/test
	source.schema.dir=${source.dir}/schema

	build.dir=build
	lib.dir=lib

	target.dir=target

I do not recall changing build.xml. 


1) DB setup

	ant build setup-db

	runs w/ errors, but it creates *.sql files which I run byu hand and next 
	time around 

	ant build setup-db

	runs w/o errors. So I consider it is a success:
	$ psql ojb
	Welcome to psql 8.0.3, the PostgreSQL interactive terminal.
	
	Type:  \copyright for distribution terms
	       \h for help with SQL commands
	       \? for help with psql commands
	       \g or terminate with semicolon to execute query
	       \q to quit
	
	ojb=# \d
	               List of relations
	 Schema |       Name        | Type  |  Owner
	--------+-------------------+-------+----------
	 public | ojb_dlist         | table | postgres
	 public | ojb_dlist_entries | table | postgres
	 public | ojb_dmap          | table | postgres
	 public | ojb_dmap_entries  | table | postgres
	 public | ojb_dset          | table | postgres
	 public | ojb_dset_entries  | table | postgres
	 public | ojb_hl_seq        | table | postgres
	 public | ojb_nrm           | table | postgres
	 public | product           | table | postgres
	(9 rows)

2) ant build

	$ ant build
	Buildfile: build.xml

	compile:
	    [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build
	    [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/classes
	    [javac] Compiling 9 source files to /data/postgres/ojb/ojb-blank/build/classes

	xdoclet:
	[ojbdoclet] 2006-04-18 18:33:08,102 [main] INFO  xdoclet.XDocletMain.start - Running <ojbrepository/>
	[ojbdoclet] Generating ojb repository descriptor (build/repository_user.xml)
	[ojbdoclet] Type org.apache.ojb.tutorial5.Product
	[ojbdoclet] Processed 1 types
	[ojbdoclet] Processed 1 types
	[ojbdoclet] 2006-04-18 18:33:08,493 [main] INFO  xdoclet.XDocletMain.start - Running <torqueschema/>
	[ojbdoclet] Generating torque schema (build/database/project-schema.xml)
	[ojbdoclet] Processed 1 types

	build:
	     [copy] Copying 7 files to /data/postgres/ojb/ojb-blank/build
	    [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/lib
	     [copy] Copying 41 files to /data/postgres/ojb/ojb-blank/build/lib

	build_if_with_mainclass:
	     [copy] Copying 2 files to /data/postgres/ojb/ojb-blank/build

	BUILD SUCCESSFUL
	Total time: 3 seconds

so I am encouraged , I proceed to the next step:

3) ant enhance-jdori

	$ ant enhance-jdori

Buildfile: build.xml

compile:

xdoclet:
[ojbdoclet] 2006-04-18 18:34:35,546 [main] INFO  xdoclet.XDocletMain.start - Running <ojbrepository/>
[ojbdoclet] 2006-04-18 18:34:36,128 [main] INFO  xdoclet.XDocletMain.start - Running <torqueschema/>

build:

build_if_with_mainclass:

enhance-jdori:
     [java] Enhancer: options:
     [java]     verbose = true
     [java]     quiet = false
     [java]     forceWrite = true
     [java]     noWrite = false
     [java]     sourcePath = null
     [java]     destinationDirectory = build/classes
     [java]     propertiesFileName = null
     [java]     doTiming = false
     [java]     classNames = {
     [java]     }
     [java]     jdoFileNames = {
     [java]         src/java/org/apache/ojb/tutorial5/Product.jdo
     [java]     }
     [java]     classFileNames = {
     [java]         build/classes/org/apache/ojb/tutorial5/Product.class
     [java]     }
     [java]     zipFileNames = {
     [java]     }
     [java]     dumpClass = false
     [java]     noAugment = false
     [java]     noAnnotate = false
     [java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/build/classes/org/apache/ojb/tutorial5/Product.class
     [java] Class Locator: using class files: {
     [java]     build/classes/org/apache/ojb/tutorial5/Product.class
     [java] }
     [java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/src/java/org/apache/ojb/tutorial5/Product.jdo
     [java] 
---------------------------------------------------------------------------

     [java] JDO ENHANCER: Enhancer: enhancing classfile ...
     [java] JDO ENHANCER: scanning class org.apache.ojb.tutorial5.Product
     [java] JDO ENHANCER: not found resource: META-INF/package.jdo
     [java] JDO ENHANCER: not found resource: WEB-INF/package.jdo
     [java] JDO ENHANCER: not found resource: package.jdo
     [java] JDO ENHANCER: not found resource: org/package.jdo
     [java] JDO ENHANCER: not found resource: org/apache/package.jdo
     [java] JDO ENHANCER: not found resource: org/apache/ojb/package.jdo
     [java] JDO ENHANCER: not found resource: org/apache/ojb/tutorial5/package.jdo
     [java] JDO ENHANCER: found resource: org/apache/ojb/tutorial5/Product.jdo
     [java] JDO ENHANCER: has default constructor.
     [java] JDO ENHANCER: has not static initializer.
     [java] JDO ENHANCER: has not clone method.
     [java] JDO ENHANCER: has not writeObject method.
     [java] JDO ENHANCER: has not writeReplace method.
     [java] JDO ENHANCER: has not readObject method.
     [java] JDO ENHANCER: has the specific JDO fields: false.
     [java] JDO ENHANCER: has the specific JDO methods: false.
     [java] JDO ENHANCER: has the specific JDO fields and methods: false.
     [java] JDO ENHANCER: has the instance-callback JDO methods: false.
     [java] JDO ENHANCER: has the instance-callback JDO methods: false.
     [java] JDO ENHANCER: implements the JDO PersistenceCapable interface: false.
     [java] JDO ENHANCER: has the generic JDO fields: false.
     [java] JDO ENHANCER: has the generic JDO methods: false.
     [java] JDO ENHANCER: has the generic JDO fields and methods: false.
     [java] JDO ENHANCER: augmenting class org.apache.ojb.tutorial5.Product
     [java] JDO ENHANCER: adding: javax.jdo.spi.StateManager jdoStateManager
     [java] JDO ENHANCER: adding: byte jdoFlags
     [java] JDO ENHANCER: adding: void jdoReplaceFlags()
     [java] JDO ENHANCER: adding: boolean jdoIsPersistent()
     [java] JDO ENHANCER: adding: boolean jdoIsTransactional()
     [java] JDO ENHANCER: adding: boolean jdoIsNew()
     [java] JDO ENHANCER: adding: boolean jdoIsDeleted()
     [java] JDO ENHANCER: adding: boolean jdoIsDirty()
     [java] JDO ENHANCER: adding: void jdoMakeDirty(java.lang.String)
     [java] JDO ENHANCER: adding: void jdoPreSerialize()
     [java] JDO ENHANCER: adding: javax.jdo.PersistenceManager jdoGetPersistenceManager()
     [java] JDO ENHANCER: adding: java.lang.Object jdoGetObjectId()
     [java] JDO ENHANCER: adding: java.lang.Object jdoGetTransactionalObjectId()
     [java] JDO ENHANCER: adding: void jdoReplaceStateManager(javax.jdo.spi.StateManager)
     [java] JDO ENHANCER: adding: void jdoProvideFields(int[])
     [java] JDO ENHANCER: adding: void jdoReplaceFields(int[])
     [java] JDO ENHANCER: adding: java.lang.Class sunjdo$classForName$(java.lang.String)
     [java] JDO ENHANCER: adding: implements javax.jdo.spi.PersistenceCapable
     [java] JDO ENHANCER: adding: int jdoInheritedFieldCount
     [java] JDO ENHANCER: adding: java.lang.String[] jdoFieldNames
     [java] JDO ENHANCER: adding: java.lang.Class[] jdoFieldTypes
     [java] JDO ENHANCER: adding: byte[] jdoFieldFlags
     [java] JDO ENHANCER: adding: java.lang.Class jdoPersistenceCapableSuperclass
     [java] JDO ENHANCER: adding: int jdoGetManagedFieldCount()
     [java] JDO ENHANCER: adding: void <clinit>()
     [java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager)
     [java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager, java.lang.Object)
     [java] JDO ENHANCER: adding: void jdoProvideField(int)
     [java] JDO ENHANCER: adding: void jdoReplaceField(int)
     [java] JDO ENHANCER: adding: void jdoCopyField(org.apache.ojb.tutorial5.Product, int)
     [java] JDO ENHANCER: adding: void jdoCopyFields(java.lang.Object, int[])
     [java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance()
     [java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance(java.lang.String)
     [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(java.lang.Object)
     [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(java.lang.Object)
     [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier, java.lang.Object)
     [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer, java.lang.Object)
     [java] JDO ENHANCER: adding: java.lang.Integer jdoGetid(org.apache.ojb.tutorial5.Product)
     [java] JDO ENHANCER: adding: void jdoSetid(org.apache.ojb.tutorial5.Product, java.lang.Integer)
     [java] JDO ENHANCER: adding: java.lang.String jdoGetname(org.apache.ojb.tutorial5.Product)
     [java] JDO ENHANCER: adding: void jdoSetname(org.apache.ojb.tutorial5.Product, java.lang.String)
     [java] JDO ENHANCER: adding: double jdoGetprice(org.apache.ojb.tutorial5.Product)
     [java] JDO ENHANCER: adding: void jdoSetprice(org.apache.ojb.tutorial5.Product, double)
     [java] JDO ENHANCER: adding: int jdoGetstock(org.apache.ojb.tutorial5.Product)
     [java] JDO ENHANCER: adding: void jdoSetstock(org.apache.ojb.tutorial5.Product, int)
     [java] JDO ENHANCER: adding: void writeObject(java.io.ObjectOutputStream)
     [java] JDO ENHANCER: annotating class org.apache.ojb.tutorial5.Product
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getId()
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setName(java.lang.String)
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.<init>()
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getPrice()
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setPrice(double)
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setStock(int)
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.toString()
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getStock()
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getName()
     [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setId(int)
     [java] JDO ENHANCER: writing enhanced class org.apache.ojb.tutorial5.Product to output stream

     [java] JDO ENHANCER: Enhancer: classfile enhanced successfully.
     [java] done.

BUILD SUCCESSFUL
Total time: 6 seconds

So I am extatic. I do:

4) cd build
   chmod +x run.sh
   ./run.sh
bash: ./run.sh: Permission denied
[litvinse@cduqbar build]$ chmod +x run.sh
[litvinse@cduqbar build]$ ./run.sh
     _  _
 __ (_)| |_
/ _\| || _ \  ~ be persistent ~
\__/| ||___/    v. 1.0.4
   /_/

Welcome to the OJB JDO RI tutorial application


[0] List all product entries
[1] Enter a new product
[2] Edit a product entry
[3] Delete a product entry
[4] Quit Application
type in number to select a use case
1
please enter a new product
enter name: casio
enter price: 10
enter available stock: 10
0     INFO  [main] BOOT - -- boot log messages -->

21    DEBUG [main] JDO - OjbStoreConnector.begin: connectionReadyForRelease=false
41    DEBUG [main] BOOT - Instantiate PersistenceBrokerFactory
64    INFO  [main] BOOT - Loading OJB's properties: file:/data/postgres/ojb/ojb-blank/build/OJB.properties
89    DEBUG [main] BOOT - No value for key "ObjectCacheClass", using default org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.
144   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.proxy.AbstractProxyFactory
144   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.proxy.AbstractProxyFactory
180   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl1
180   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl
180   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
181   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
218   DEBUG [main] core.PersistenceBrokerFactoryDefaultImpl - PersistenceBroker pool will be setup with the following configuration org.apache.commons.pool.impl.GenericKeyedObjectPool$Config@1592174[
  maxIdle=-1
  maxActive=100
  maxTotal=-1
  maxWait=2000
  whenExhaustedAction=0
  testOnBorrow=false
  testOnReturn=false
  testWhileIdle=false
  timeBetweenEvictionRunsMillis=-1
  numTestsPerEvictionRun=10
  minEvictableIdleTimeMillis=1000000
]
253   INFO  [main] core.PersistenceBrokerFactoryDefaultImpl - Create 
PersistenceBroker instance pool, pool configuration was 
{whenExhaustedAction=0, maxIdle=-1, maxActive=100, maxWait=2000, 
removeAbandoned=false, numTestsPerEvictionRun=10, 
minEvictableIdleTimeMillis=1000000, testWhileIdle=false, 
testOnReturn=false, logAbandoned=false, minIdle=0, 
removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1, 
testOnBorrow=false}
253   INFO  [main] BOOT - PersistencebrokerFactory class instantiated: org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl@2a4983
274   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.MetadataManager
275   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.MetadataManager
303   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryPersistor
303   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryPersistor
326   INFO  [main] metadata.RepositoryPersistor - OJB Descriptor Repository: file:/data/postgres/ojb/ojb-blank/build/repository.xml
326   INFO  [main] metadata.RepositoryPersistor - Building repository from :file:/data/postgres/ojb/ojb-blank/build/repository.xml
370   INFO  [main] metadata.RepositoryPersistor - RepositoryPersistor using SAXParserFactory : org.apache.xerces.jaxp.SAXParserFactoryImpl
575   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.DescriptorRepository
575   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.DescriptorRepository
611   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryXmlHandler
611   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryXmlHandler

<SNIP> .... <SNIP> ot tons of debugging stuff

4240  INFO  [main] accesslayer.ConnectionFactoryPooledImpl - Create new 
connection 
pool:org.apache.ojb.broker.metadata.JdbcConnectionDescriptor@d9660d[
  jcd-alias=default
  default-connection=true
  dbms=PostgreSQL
  jdbc-level=3.0
  driver=org.postgresql.Driver
  protocol=jdbc
  sub-protocol=postgresql
  db-alias=//localhost/ojb
  user=postgres
  password=*****
  eager-release=false
  ConnectionPoolDescriptor={whenExhaustedAction=0, maxIdle=-1, 
maxActive=30, maxWait=10000, removeAbandoned=false, 
numTestsPerEvictionRun=10, minEvictableIdleTimeMillis=600000, 
testWhileIdle=false, testOnReturn=false, logAbandoned=false, minIdle=0, 
fetchSize=0, removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1, 
testOnBorrow=true}
  batchMode=false
  useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
  ignoreAutoCommitExceptions=false
  
sequenceDescriptor=org.apache.ojb.broker.metadata.SequenceDescriptor@bb0d0d[
     sequenceManagerClass=class 
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
     Properties={autoNaming=true, seq.start=200000, grabSize=20}
]
]
4241  DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - createPool was called
4270  DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - makeObject called
4368  DEBUG [main] accesslayer.ConnectionFactoryAbstractImpl - Create new connection using DriverManager: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
4370  DEBUG [main] accesslayer.ConnectionManagerImpl - Request new connection from ConnectionFactory: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
4390  DEBUG [main] accesslayer.ConnectionManagerImpl - localBegin was called for con org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
4391  DEBUG [main] accesslayer.ConnectionManagerImpl - Try to change autoCommit state to 'false'
Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
com.sun.jdori.model.ModelFatalException: Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
        at com.sun.jdori.common.model.jdo.JDOModelImpl.lookupXMLMetadata(Unknown Source)
        at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
        at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
        at com.sun.jdori.common.model.runtime.RuntimeJavaType.getJDOClass(Unknown Source)
        at com.sun.jdori.common.state.StateManagerImpl.initializePC(Unknown Source)
        at com.sun.jdori.common.state.StateManagerImpl.<init>(Unknown Source)
        at com.sun.jdori.common.state.StateManagerFactory.newInstance(Unknown Source)
        at com.sun.jdori.common.CacheManagerImpl.makePersistent(Unknown Source)
        at com.sun.jdori.common.PersistenceManagerImpl.makePersistentInternal(Unknown Source)
        at com.sun.jdori.common.PersistenceManagerImpl.makePersistent(Unknown Source)
        at com.sun.jdori.common.PersistenceManagerWrapper.makePersistent(Unknown Source)
        at org.apache.ojb.tutorial5.UCEnterNewProduct.apply(Unknown Source)
        at org.apache.ojb.tutorial5.Application.run(Unknown Source)
        at org.apache.ojb.tutorial5.Application.main(Unknown Source)


	
So You can see I am failing with "Missing JDO metadata for enhanced class 
'org.apache.ojb.tutorial5.Product'"!

I would greatly appreciate yuor taking time looking into my problem and 
hinting on what am I doing wrong! I have been stuck on this for a couple 
of days and, I think, I exhausted my limited aresenal of knowldege.

additional info:

	- I am running on FedoreCore 3 
	- I am running postgres 8.0.3
	- I use j2sdk1.4.2_09


	

best regards,
Dmitri Litvintsev



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: newbie problems

Posted by Antonio Gallardo <ag...@agssa.net>.
Dmitry Litvintsev escribió:
> Thank you Armin, 
>
> Please educate me a bit, cause I am a bit perplexed by your mail. 
>
> You say OJB does not work well w/ JDO, use ODMG or PB
>
> OK, I understand that. 
>
> then you say:
>
>   
>> If you want to use JDO, please have a look at JPOX or Speedo (or other
>>     
>
> JPOX is a implementation of JDO, isn't it? So can I use OJB w/ JPOX then?
> Or should I just use JPOX ? (this indicates my confusion at what exactly 
> OJB does on the top of JDO).  
>
> Please help me out. 
>   
Hi Dmitry,

We cannot use OJB w/ JPOX. Basically, the JDO support in OJB works only 
with Sun JDO 1.0.1 [1]. If you want to stay in "Apache home", you should 
try Apache JDO wich is working on a final release of a "JDO 2" version.

Best Regards,

Antonio Gallardo.

[1] http://java.sun.com/products/jdo/
[2] http://db.apache.org/jdo/
>
> On Wed, 19 Apr 2006, Armin Waibel wrote:
>
>   
>> Hi Dmitry,
>>
>> I don't know what's going wrong when running the tutorial (seems that 
>> Product.class was correctly enhanced by the JDO enhancer).
>> But I wouldn't recommend OJB's JDO 1.0-api implementation for production 
>> environments.
>> The PB-api and ODMG-api are stable and ready for production use
>> http://db.apache.org/ojb/status.html
>>
>> If you want to use JDO, please have a look at JPOX or Speedo (or other 
>> projects)
>> http://www.jpox.org/index.jsp
>> http://speedo.objectweb.org/
>>
>> regards,
>> Armin
>>
>> Dmitry Litvintsev wrote:
>>     
>>> Hi, 
>>>
>>> I am developing a java application and I am considering OJB technology to 
>>> store objects' states seamlessly in the PostgreSQL database. 
>>>
>>> In short I am failing to get tutorial5 up and running. I followed 
>>> instructions on this link:
>>>
>>> 	http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
>>>
>>>       
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: newbie problems

Posted by Armin Waibel <ar...@apache.org>.
Dmitry Litvintsev wrote:
> Thank you Armin, 
> 
> Please educate me a bit, cause I am a bit perplexed by your mail. 
> 
> You say OJB does not work well w/ JDO, use ODMG or PB
> 
> OK, I understand that. 
> 
> then you say:
> 
>> If you want to use JDO, please have a look at JPOX or Speedo (or other
> 
> JPOX is a implementation of JDO, isn't it? 

yep!


> So can I use OJB w/ JPOX then?
> Or should I just use JPOX ? (this indicates my confusion at what exactly 
> OJB does on the top of JDO).

JPOX instead of OJB (If you fixed to use the JDO-api).
OJB is a O/R-mapper with different supported API's (PB-api, ODMG-api, 
prototype JDO1.0), JPOX "only" supports the JDO-api.
HTH

regards,
Armin


> 
> Please help me out. 
> 
> 
> On Wed, 19 Apr 2006, Armin Waibel wrote:
> 
>> Hi Dmitry,
>>
>> I don't know what's going wrong when running the tutorial (seems that 
>> Product.class was correctly enhanced by the JDO enhancer).
>> But I wouldn't recommend OJB's JDO 1.0-api implementation for production 
>> environments.
>> The PB-api and ODMG-api are stable and ready for production use
>> http://db.apache.org/ojb/status.html
>>
>> If you want to use JDO, please have a look at JPOX or Speedo (or other 
>> projects)
>> http://www.jpox.org/index.jsp
>> http://speedo.objectweb.org/
>>
>> regards,
>> Armin
>>
>> Dmitry Litvintsev wrote:
>>> Hi, 
>>>
>>> I am developing a java application and I am considering OJB technology to 
>>> store objects' states seamlessly in the PostgreSQL database. 
>>>
>>> In short I am failing to get tutorial5 up and running. I followed 
>>> instructions on this link:
>>>
>>> 	http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
>>>
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: newbie problems

Posted by Dmitry Litvintsev <li...@fnal.gov>.
Thank you Armin, 

Please educate me a bit, cause I am a bit perplexed by your mail. 

You say OJB does not work well w/ JDO, use ODMG or PB

OK, I understand that. 

then you say:

> If you want to use JDO, please have a look at JPOX or Speedo (or other

JPOX is a implementation of JDO, isn't it? So can I use OJB w/ JPOX then?
Or should I just use JPOX ? (this indicates my confusion at what exactly 
OJB does on the top of JDO).  

Please help me out. 


On Wed, 19 Apr 2006, Armin Waibel wrote:

> Hi Dmitry,
> 
> I don't know what's going wrong when running the tutorial (seems that 
> Product.class was correctly enhanced by the JDO enhancer).
> But I wouldn't recommend OJB's JDO 1.0-api implementation for production 
> environments.
> The PB-api and ODMG-api are stable and ready for production use
> http://db.apache.org/ojb/status.html
> 
> If you want to use JDO, please have a look at JPOX or Speedo (or other 
> projects)
> http://www.jpox.org/index.jsp
> http://speedo.objectweb.org/
> 
> regards,
> Armin
> 
> Dmitry Litvintsev wrote:
> > 
> > Hi, 
> > 
> > I am developing a java application and I am considering OJB technology to 
> > store objects' states seamlessly in the PostgreSQL database. 
> > 
> > In short I am failing to get tutorial5 up and running. I followed 
> > instructions on this link:
> > 
> > 	http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
> > 

-- 
Dmitri Litvintsev

/----------------------------------------------------------\
| Tel:       (630) 840 5005                                |  
| FAX:       (630) 840 2968                                |      
|            (630) 840 2783                                |      
| Pager:      847  536 6450                                |  
| office:    WH8E 863                                      |
| E-mail:    litvinse@fnal.gov                             |
\----------------------------------------------------------/




---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: newbie problems

Posted by Armin Waibel <ar...@apache.org>.
Hi Dmitry,

I don't know what's going wrong when running the tutorial (seems that 
Product.class was correctly enhanced by the JDO enhancer).
But I wouldn't recommend OJB's JDO 1.0-api implementation for production 
environments.
The PB-api and ODMG-api are stable and ready for production use
http://db.apache.org/ojb/status.html

If you want to use JDO, please have a look at JPOX or Speedo (or other 
projects)
http://www.jpox.org/index.jsp
http://speedo.objectweb.org/

regards,
Armin

Dmitry Litvintsev wrote:
> 
> Hi, 
> 
> I am developing a java application and I am considering OJB technology to 
> store objects' states seamlessly in the PostgreSQL database. 
> 
> In short I am failing to get tutorial5 up and running. I followed 
> instructions on this link:
> 
> 	http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
> 
> My actions:
> 
> 	1) downloaded ojb-blank.jar
> 	2) downloaded tutorial5-src.jar
> 	3) downloaded db-ojb-1.0.4.jar
> 	4) downloaded jdo.jar,jdori-enhancer.jar,jdori.jar (jdo 1.0.1 RI)
> 	5) downloaded PostgreSQL drivers pg74.216.jdbc3.jar postgresql-8.1-405.jdbc3.jar 
> 
> my top directory is "ojb-blank"
> I put *jar files into lib (ojb-blank/lib)
> I put tutorial5 sources to (ojb_blank/src/java/org/apache/ojb/tutorial5)
> 
> I modified buid.properties, so it looks like this:
> 
> 	jcdAlias=default
> 	databaseName=ojb
> 	databaseUser=postgres
> 	databasePassword=
> 
> 	dbmsName=PostgreSQL
> 	jdbcLevel=3.0
> 	jdbcRuntimeDriver=org.postgresql.Driver
> 	urlProtocol=jdbc
> 	urlSubprotocol=postgresql
> 	urlDbalias=//localhost/${databaseName}
> 
> 	torque.database=postgresql
> 	torque.database.createUrl=${urlProtocol}:${urlSubprotocol}:${urlDbalias}
> 
> 	jar.name=my-project.jar
> 
> 	source.dir=src
> 	source.java.dir=${source.dir}/java
> 	source.resource.dir=${source.dir}/resources
> 	source.test.dir=${source.dir}/test
> 	source.schema.dir=${source.dir}/schema
> 
> 	build.dir=build
> 	lib.dir=lib
> 
> 	target.dir=target
> 
> I do not recall changing build.xml. 
> 
> 
> 1) DB setup
> 
> 	ant build setup-db
> 
> 	runs w/ errors, but it creates *.sql files which I run byu hand and next 
> 	time around 
> 
> 	ant build setup-db
> 
> 	runs w/o errors. So I consider it is a success:
> 	$ psql ojb
> 	Welcome to psql 8.0.3, the PostgreSQL interactive terminal.
> 	
> 	Type:  \copyright for distribution terms
> 	       \h for help with SQL commands
> 	       \? for help with psql commands
> 	       \g or terminate with semicolon to execute query
> 	       \q to quit
> 	
> 	ojb=# \d
> 	               List of relations
> 	 Schema |       Name        | Type  |  Owner
> 	--------+-------------------+-------+----------
> 	 public | ojb_dlist         | table | postgres
> 	 public | ojb_dlist_entries | table | postgres
> 	 public | ojb_dmap          | table | postgres
> 	 public | ojb_dmap_entries  | table | postgres
> 	 public | ojb_dset          | table | postgres
> 	 public | ojb_dset_entries  | table | postgres
> 	 public | ojb_hl_seq        | table | postgres
> 	 public | ojb_nrm           | table | postgres
> 	 public | product           | table | postgres
> 	(9 rows)
> 
> 2) ant build
> 
> 	$ ant build
> 	Buildfile: build.xml
> 
> 	compile:
> 	    [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build
> 	    [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/classes
> 	    [javac] Compiling 9 source files to /data/postgres/ojb/ojb-blank/build/classes
> 
> 	xdoclet:
> 	[ojbdoclet] 2006-04-18 18:33:08,102 [main] INFO  xdoclet.XDocletMain.start - Running <ojbrepository/>
> 	[ojbdoclet] Generating ojb repository descriptor (build/repository_user.xml)
> 	[ojbdoclet] Type org.apache.ojb.tutorial5.Product
> 	[ojbdoclet] Processed 1 types
> 	[ojbdoclet] Processed 1 types
> 	[ojbdoclet] 2006-04-18 18:33:08,493 [main] INFO  xdoclet.XDocletMain.start - Running <torqueschema/>
> 	[ojbdoclet] Generating torque schema (build/database/project-schema.xml)
> 	[ojbdoclet] Processed 1 types
> 
> 	build:
> 	     [copy] Copying 7 files to /data/postgres/ojb/ojb-blank/build
> 	    [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/lib
> 	     [copy] Copying 41 files to /data/postgres/ojb/ojb-blank/build/lib
> 
> 	build_if_with_mainclass:
> 	     [copy] Copying 2 files to /data/postgres/ojb/ojb-blank/build
> 
> 	BUILD SUCCESSFUL
> 	Total time: 3 seconds
> 
> so I am encouraged , I proceed to the next step:
> 
> 3) ant enhance-jdori
> 
> 	$ ant enhance-jdori
> 
> Buildfile: build.xml
> 
> compile:
> 
> xdoclet:
> [ojbdoclet] 2006-04-18 18:34:35,546 [main] INFO  xdoclet.XDocletMain.start - Running <ojbrepository/>
> [ojbdoclet] 2006-04-18 18:34:36,128 [main] INFO  xdoclet.XDocletMain.start - Running <torqueschema/>
> 
> build:
> 
> build_if_with_mainclass:
> 
> enhance-jdori:
>      [java] Enhancer: options:
>      [java]     verbose = true
>      [java]     quiet = false
>      [java]     forceWrite = true
>      [java]     noWrite = false
>      [java]     sourcePath = null
>      [java]     destinationDirectory = build/classes
>      [java]     propertiesFileName = null
>      [java]     doTiming = false
>      [java]     classNames = {
>      [java]     }
>      [java]     jdoFileNames = {
>      [java]         src/java/org/apache/ojb/tutorial5/Product.jdo
>      [java]     }
>      [java]     classFileNames = {
>      [java]         build/classes/org/apache/ojb/tutorial5/Product.class
>      [java]     }
>      [java]     zipFileNames = {
>      [java]     }
>      [java]     dumpClass = false
>      [java]     noAugment = false
>      [java]     noAnnotate = false
>      [java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/build/classes/org/apache/ojb/tutorial5/Product.class
>      [java] Class Locator: using class files: {
>      [java]     build/classes/org/apache/ojb/tutorial5/Product.class
>      [java] }
>      [java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/src/java/org/apache/ojb/tutorial5/Product.jdo
>      [java] 
> ---------------------------------------------------------------------------
> 
>      [java] JDO ENHANCER: Enhancer: enhancing classfile ...
>      [java] JDO ENHANCER: scanning class org.apache.ojb.tutorial5.Product
>      [java] JDO ENHANCER: not found resource: META-INF/package.jdo
>      [java] JDO ENHANCER: not found resource: WEB-INF/package.jdo
>      [java] JDO ENHANCER: not found resource: package.jdo
>      [java] JDO ENHANCER: not found resource: org/package.jdo
>      [java] JDO ENHANCER: not found resource: org/apache/package.jdo
>      [java] JDO ENHANCER: not found resource: org/apache/ojb/package.jdo
>      [java] JDO ENHANCER: not found resource: org/apache/ojb/tutorial5/package.jdo
>      [java] JDO ENHANCER: found resource: org/apache/ojb/tutorial5/Product.jdo
>      [java] JDO ENHANCER: has default constructor.
>      [java] JDO ENHANCER: has not static initializer.
>      [java] JDO ENHANCER: has not clone method.
>      [java] JDO ENHANCER: has not writeObject method.
>      [java] JDO ENHANCER: has not writeReplace method.
>      [java] JDO ENHANCER: has not readObject method.
>      [java] JDO ENHANCER: has the specific JDO fields: false.
>      [java] JDO ENHANCER: has the specific JDO methods: false.
>      [java] JDO ENHANCER: has the specific JDO fields and methods: false.
>      [java] JDO ENHANCER: has the instance-callback JDO methods: false.
>      [java] JDO ENHANCER: has the instance-callback JDO methods: false.
>      [java] JDO ENHANCER: implements the JDO PersistenceCapable interface: false.
>      [java] JDO ENHANCER: has the generic JDO fields: false.
>      [java] JDO ENHANCER: has the generic JDO methods: false.
>      [java] JDO ENHANCER: has the generic JDO fields and methods: false.
>      [java] JDO ENHANCER: augmenting class org.apache.ojb.tutorial5.Product
>      [java] JDO ENHANCER: adding: javax.jdo.spi.StateManager jdoStateManager
>      [java] JDO ENHANCER: adding: byte jdoFlags
>      [java] JDO ENHANCER: adding: void jdoReplaceFlags()
>      [java] JDO ENHANCER: adding: boolean jdoIsPersistent()
>      [java] JDO ENHANCER: adding: boolean jdoIsTransactional()
>      [java] JDO ENHANCER: adding: boolean jdoIsNew()
>      [java] JDO ENHANCER: adding: boolean jdoIsDeleted()
>      [java] JDO ENHANCER: adding: boolean jdoIsDirty()
>      [java] JDO ENHANCER: adding: void jdoMakeDirty(java.lang.String)
>      [java] JDO ENHANCER: adding: void jdoPreSerialize()
>      [java] JDO ENHANCER: adding: javax.jdo.PersistenceManager jdoGetPersistenceManager()
>      [java] JDO ENHANCER: adding: java.lang.Object jdoGetObjectId()
>      [java] JDO ENHANCER: adding: java.lang.Object jdoGetTransactionalObjectId()
>      [java] JDO ENHANCER: adding: void jdoReplaceStateManager(javax.jdo.spi.StateManager)
>      [java] JDO ENHANCER: adding: void jdoProvideFields(int[])
>      [java] JDO ENHANCER: adding: void jdoReplaceFields(int[])
>      [java] JDO ENHANCER: adding: java.lang.Class sunjdo$classForName$(java.lang.String)
>      [java] JDO ENHANCER: adding: implements javax.jdo.spi.PersistenceCapable
>      [java] JDO ENHANCER: adding: int jdoInheritedFieldCount
>      [java] JDO ENHANCER: adding: java.lang.String[] jdoFieldNames
>      [java] JDO ENHANCER: adding: java.lang.Class[] jdoFieldTypes
>      [java] JDO ENHANCER: adding: byte[] jdoFieldFlags
>      [java] JDO ENHANCER: adding: java.lang.Class jdoPersistenceCapableSuperclass
>      [java] JDO ENHANCER: adding: int jdoGetManagedFieldCount()
>      [java] JDO ENHANCER: adding: void <clinit>()
>      [java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager)
>      [java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager, java.lang.Object)
>      [java] JDO ENHANCER: adding: void jdoProvideField(int)
>      [java] JDO ENHANCER: adding: void jdoReplaceField(int)
>      [java] JDO ENHANCER: adding: void jdoCopyField(org.apache.ojb.tutorial5.Product, int)
>      [java] JDO ENHANCER: adding: void jdoCopyFields(java.lang.Object, int[])
>      [java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance()
>      [java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance(java.lang.String)
>      [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(java.lang.Object)
>      [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(java.lang.Object)
>      [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier, java.lang.Object)
>      [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer, java.lang.Object)
>      [java] JDO ENHANCER: adding: java.lang.Integer jdoGetid(org.apache.ojb.tutorial5.Product)
>      [java] JDO ENHANCER: adding: void jdoSetid(org.apache.ojb.tutorial5.Product, java.lang.Integer)
>      [java] JDO ENHANCER: adding: java.lang.String jdoGetname(org.apache.ojb.tutorial5.Product)
>      [java] JDO ENHANCER: adding: void jdoSetname(org.apache.ojb.tutorial5.Product, java.lang.String)
>      [java] JDO ENHANCER: adding: double jdoGetprice(org.apache.ojb.tutorial5.Product)
>      [java] JDO ENHANCER: adding: void jdoSetprice(org.apache.ojb.tutorial5.Product, double)
>      [java] JDO ENHANCER: adding: int jdoGetstock(org.apache.ojb.tutorial5.Product)
>      [java] JDO ENHANCER: adding: void jdoSetstock(org.apache.ojb.tutorial5.Product, int)
>      [java] JDO ENHANCER: adding: void writeObject(java.io.ObjectOutputStream)
>      [java] JDO ENHANCER: annotating class org.apache.ojb.tutorial5.Product
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getId()
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setName(java.lang.String)
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.<init>()
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getPrice()
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setPrice(double)
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setStock(int)
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.toString()
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getStock()
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getName()
>      [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setId(int)
>      [java] JDO ENHANCER: writing enhanced class org.apache.ojb.tutorial5.Product to output stream
> 
>      [java] JDO ENHANCER: Enhancer: classfile enhanced successfully.
>      [java] done.
> 
> BUILD SUCCESSFUL
> Total time: 6 seconds
> 
> So I am extatic. I do:
> 
> 4) cd build
>    chmod +x run.sh
>    ./run.sh
> bash: ./run.sh: Permission denied
> [litvinse@cduqbar build]$ chmod +x run.sh
> [litvinse@cduqbar build]$ ./run.sh
>      _  _
>  __ (_)| |_
> / _\| || _ \  ~ be persistent ~
> \__/| ||___/    v. 1.0.4
>    /_/
> 
> Welcome to the OJB JDO RI tutorial application
> 
> 
> [0] List all product entries
> [1] Enter a new product
> [2] Edit a product entry
> [3] Delete a product entry
> [4] Quit Application
> type in number to select a use case
> 1
> please enter a new product
> enter name: casio
> enter price: 10
> enter available stock: 10
> 0     INFO  [main] BOOT - -- boot log messages -->
> 
> 21    DEBUG [main] JDO - OjbStoreConnector.begin: connectionReadyForRelease=false
> 41    DEBUG [main] BOOT - Instantiate PersistenceBrokerFactory
> 64    INFO  [main] BOOT - Loading OJB's properties: file:/data/postgres/ojb/ojb-blank/build/OJB.properties
> 89    DEBUG [main] BOOT - No value for key "ObjectCacheClass", using default org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.
> 144   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.proxy.AbstractProxyFactory
> 144   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.proxy.AbstractProxyFactory
> 180   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl1
> 180   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl
> 180   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> 181   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> 218   DEBUG [main] core.PersistenceBrokerFactoryDefaultImpl - PersistenceBroker pool will be setup with the following configuration org.apache.commons.pool.impl.GenericKeyedObjectPool$Config@1592174[
>   maxIdle=-1
>   maxActive=100
>   maxTotal=-1
>   maxWait=2000
>   whenExhaustedAction=0
>   testOnBorrow=false
>   testOnReturn=false
>   testWhileIdle=false
>   timeBetweenEvictionRunsMillis=-1
>   numTestsPerEvictionRun=10
>   minEvictableIdleTimeMillis=1000000
> ]
> 253   INFO  [main] core.PersistenceBrokerFactoryDefaultImpl - Create 
> PersistenceBroker instance pool, pool configuration was 
> {whenExhaustedAction=0, maxIdle=-1, maxActive=100, maxWait=2000, 
> removeAbandoned=false, numTestsPerEvictionRun=10, 
> minEvictableIdleTimeMillis=1000000, testWhileIdle=false, 
> testOnReturn=false, logAbandoned=false, minIdle=0, 
> removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1, 
> testOnBorrow=false}
> 253   INFO  [main] BOOT - PersistencebrokerFactory class instantiated: org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl@2a4983
> 274   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.MetadataManager
> 275   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.MetadataManager
> 303   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryPersistor
> 303   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryPersistor
> 326   INFO  [main] metadata.RepositoryPersistor - OJB Descriptor Repository: file:/data/postgres/ojb/ojb-blank/build/repository.xml
> 326   INFO  [main] metadata.RepositoryPersistor - Building repository from :file:/data/postgres/ojb/ojb-blank/build/repository.xml
> 370   INFO  [main] metadata.RepositoryPersistor - RepositoryPersistor using SAXParserFactory : org.apache.xerces.jaxp.SAXParserFactoryImpl
> 575   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.DescriptorRepository
> 575   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.DescriptorRepository
> 611   DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryXmlHandler
> 611   DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryXmlHandler
> 
> <SNIP> .... <SNIP> ot tons of debugging stuff
> 
> 4240  INFO  [main] accesslayer.ConnectionFactoryPooledImpl - Create new 
> connection 
> pool:org.apache.ojb.broker.metadata.JdbcConnectionDescriptor@d9660d[
>   jcd-alias=default
>   default-connection=true
>   dbms=PostgreSQL
>   jdbc-level=3.0
>   driver=org.postgresql.Driver
>   protocol=jdbc
>   sub-protocol=postgresql
>   db-alias=//localhost/ojb
>   user=postgres
>   password=*****
>   eager-release=false
>   ConnectionPoolDescriptor={whenExhaustedAction=0, maxIdle=-1, 
> maxActive=30, maxWait=10000, removeAbandoned=false, 
> numTestsPerEvictionRun=10, minEvictableIdleTimeMillis=600000, 
> testWhileIdle=false, testOnReturn=false, logAbandoned=false, minIdle=0, 
> fetchSize=0, removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1, 
> testOnBorrow=true}
>   batchMode=false
>   useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
>   ignoreAutoCommitExceptions=false
>   
> sequenceDescriptor=org.apache.ojb.broker.metadata.SequenceDescriptor@bb0d0d[
>      sequenceManagerClass=class 
> org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
>      Properties={autoNaming=true, seq.start=200000, grabSize=20}
> ]
> ]
> 4241  DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - createPool was called
> 4270  DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - makeObject called
> 4368  DEBUG [main] accesslayer.ConnectionFactoryAbstractImpl - Create new connection using DriverManager: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
> 4370  DEBUG [main] accesslayer.ConnectionManagerImpl - Request new connection from ConnectionFactory: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
> 4390  DEBUG [main] accesslayer.ConnectionManagerImpl - localBegin was called for con org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
> 4391  DEBUG [main] accesslayer.ConnectionManagerImpl - Try to change autoCommit state to 'false'
> Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
> com.sun.jdori.model.ModelFatalException: Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
>         at com.sun.jdori.common.model.jdo.JDOModelImpl.lookupXMLMetadata(Unknown Source)
>         at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
>         at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
>         at com.sun.jdori.common.model.runtime.RuntimeJavaType.getJDOClass(Unknown Source)
>         at com.sun.jdori.common.state.StateManagerImpl.initializePC(Unknown Source)
>         at com.sun.jdori.common.state.StateManagerImpl.<init>(Unknown Source)
>         at com.sun.jdori.common.state.StateManagerFactory.newInstance(Unknown Source)
>         at com.sun.jdori.common.CacheManagerImpl.makePersistent(Unknown Source)
>         at com.sun.jdori.common.PersistenceManagerImpl.makePersistentInternal(Unknown Source)
>         at com.sun.jdori.common.PersistenceManagerImpl.makePersistent(Unknown Source)
>         at com.sun.jdori.common.PersistenceManagerWrapper.makePersistent(Unknown Source)
>         at org.apache.ojb.tutorial5.UCEnterNewProduct.apply(Unknown Source)
>         at org.apache.ojb.tutorial5.Application.run(Unknown Source)
>         at org.apache.ojb.tutorial5.Application.main(Unknown Source)
> 
> 
> 	
> So You can see I am failing with "Missing JDO metadata for enhanced class 
> 'org.apache.ojb.tutorial5.Product'"!
> 
> I would greatly appreciate yuor taking time looking into my problem and 
> hinting on what am I doing wrong! I have been stuck on this for a couple 
> of days and, I think, I exhausted my limited aresenal of knowldege.
> 
> additional info:
> 
> 	- I am running on FedoreCore 3 
> 	- I am running postgres 8.0.3
> 	- I use j2sdk1.4.2_09
> 
> 
> 	
> 
> best regards,
> Dmitri Litvintsev
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org