Oracle OJB error
We recently started getting a weird error with OJB and we are trying to find out if its an Oracle specific issue or an OJB issue that would happen cross databases. We get from our logs OJB: Create new DBCP connection pool:[EMAIL PROTECTED] jcd-alias=SECURITY default-connection=false dbms=Oracle jdbc-level=3.0 driver=oracle.jdbc.driver.OracleDriver protocol=jdbc sub-protocol=oracle db-alias=thin:@XX.X.XX.XX::VPSu user=security password=* eager-release=false ConnectionPoolDescriptor={whenExhaustedAction=0, validationQuery=SELECT 1 FROM DUAL, maxIdle=-1, maxActive=256, maxWait=5000, removeAbandoned=false, numTestsPerEvictionRun=10, testWhileIdle=false, minEvictableIdleTimeMillis=60, testOnReturn=false, logAbandoned=false, removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1, testOnBorrow=true} batchMode=false useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE ignoreAutoCommitExceptions=false sequenceDescriptor= ] 38359 2005-12-08 16:27:48,455 DEBUG - OJB: SQL:INSERT INTO LOG (LOG_ID,LOG_DTIME,LOG_LEVEL,MESSAGE,SESSION_ID,LOG_USER,MODULE,SOURCE,EX CEPTION,CREATE_USER,CREATE_DTIME,MODIFY_USER,MODIFY_DTIME,MODIFY_USER_DB ,DATA_TAG) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ,null,,swav,112233,2005-12-08 16:27:48.455 38468 2005-12-08 16:27:48,564 ERROR - OJB: Platform dependend failure,null,,swav,112233,2005-12-08 16:27:48.564 org.apache.ojb.broker.platforms.PlatformException: Could not set escape processing at org.apache.ojb.broker.platforms.PlatformOracleImpl.afterStatementCreate( PlatformOracleImpl.java:63) at org.apache.ojb.broker.accesslayer.StatementsForClassImpl.prepareStatemen t(StatementsForClassImpl.java:333) at org.apache.ojb.broker.accesslayer.StatementsForClassImpl.prepareStatemen t(StatementsForClassImpl.java:223) at org.apache.ojb.broker.accesslayer.StatementsForClassImpl.getPreparedStmt (StatementsForClassImpl.java:167) at org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement( StatementManager.java:637) at org.apache.ojb.broker.util.BrokerHelper.doesExist(BrokerHelper.java:628) at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBroker Impl.java:679) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP ersistenceBroker.java:174) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingP ersistenceBroker.java:174) at com.transcore.nucleus.persist.connection.ojb.OJBDataConnection.save(OJBD ataConnection.java:825) at com.transcore.nucleus.persist.connection.ojb.OJBDataConnection.save(OJBD ataConnection.java:798) at com.transcore.premise.measure.logger.db.DbLoggerDelegate.commit(DbLogger Delegate.java:162) at com.transcore.premise.measure.logger.db.DbLoggerDelegate$DbLogWriteTask. run(DbLoggerDelegate.java:45) at java.util.TimerThread.mainLoop(Timer.java:432) at java.util.TimerThread.run(Timer.java:382) Any thoughts what could be causing this error? The application continues to run, but this error continues to repeat itself
Re: Class Hints
Jakob, Ok, I miss understood its purpose. I wanted and instance of PhoneNumber or PostalAddress, I guess it goes back to the bug Armin mentioned. I have modified my code to loop through the results and query for the appropriate table and set it in PartyContactMech. Thanks for the clarification. I see now in the example that it is referencing a field in the extended table. -chris worley hi chris, adding a path class makes only sense when you hava a path in your query. ie: crit.addEqualTo("contactMech.something", on other thing); crit.addPathClass("contactMech", CPhoneNumber.class); jakob Chris Worley schrieb: Jakob, -- with hints and extents defined for CContactMech Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); crit.addPathClass("contactMech", CPhoneNumber.class); Criteria critAddress = new Criteria(); critAddress.addEqualTo("partyId", partyId); critAddress.addPathClass("contactMech", CPostalAddress.class); crit.addOrCriteria(critAddress); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: getCollectionByQuery (class org.apache.ojb.broker.util.collections.RemovalAwareCollection, class net.enterprise.common.model.party.CPartyContactMech, QueryByCriteria from class net.enterprise.common.model.party.CPartyContactMech where [partyId = 1, [partyId = 1]]) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.party_contact_mech_id,A0.party_id,A0.contact_mech_id,A0.from_date,A0.thru_date,A0.contact_mech_purpose_id FROM party_contact_mech A0 WHERE A0.party_id = ? OR (A0.party_id = ?) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.contact_mech_type_id FROM contact_mech A0 WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.country_code,A0.area_code,A0.contact_number FROM phone_number A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.to_name,A0.attention,A0.address1,A0.address2,A0.city,A0.postal_code,A0.state_geo_id,A0.country_geo_id FROM postal_address A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Materialisation of object is finished, push 2objects to cache [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Push to cache: net.enterprise.common.model.party.CPartyContactMech{1} [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Push to cache: net.enterprise.common.model.contact.CContactMech{2} -- without hints and extents defined for CContactMech Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: getCollectionByQuery (class org.apache.ojb.broker.util.collections.RemovalAwareCollection, class net.enterprise.common.model.party.CPartyContactMech, QueryByCriteria from class net.enterprise.common.model.party.CPartyContactMech where [partyId = 1]) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.party_contact_mech_id,A0.party_id,A0.contact_mech_id,A0.from_date,A0.thru_date,A0.contact_mech_purpose_id FROM party_contact_mech A0 WHERE A0.party_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.contact_mech_type_id FROM contact_mech A0 WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias():
Re: Class Hints
hi chris, adding a path class makes only sense when you hava a path in your query. ie: crit.addEqualTo("contactMech.something", on other thing); crit.addPathClass("contactMech", CPhoneNumber.class); jakob Chris Worley schrieb: Jakob, -- with hints and extents defined for CContactMech Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); crit.addPathClass("contactMech", CPhoneNumber.class); Criteria critAddress = new Criteria(); critAddress.addEqualTo("partyId", partyId); critAddress.addPathClass("contactMech", CPostalAddress.class); crit.addOrCriteria(critAddress); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: getCollectionByQuery (class org.apache.ojb.broker.util.collections.RemovalAwareCollection, class net.enterprise.common.model.party.CPartyContactMech, QueryByCriteria from class net.enterprise.common.model.party.CPartyContactMech where [partyId = 1, [partyId = 1]]) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.party_contact_mech_id,A0.party_id,A0.contact_mech_id,A0.from_date,A0.thru_date,A0.contact_mech_purpose_id FROM party_contact_mech A0 WHERE A0.party_id = ? OR (A0.party_id = ?) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.contact_mech_type_id FROM contact_mech A0 WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.country_code,A0.area_code,A0.contact_number FROM phone_number A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.to_name,A0.attention,A0.address1,A0.address2,A0.city,A0.postal_code,A0.state_geo_id,A0.country_geo_id FROM postal_address A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Materialisation of object is finished, push 2objects to cache [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Push to cache: net.enterprise.common.model.party.CPartyContactMech{1} [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Push to cache: net.enterprise.common.model.contact.CContactMech{2} -- without hints and extents defined for CContactMech Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: getCollectionByQuery (class org.apache.ojb.broker.util.collections.RemovalAwareCollection, class net.enterprise.common.model.party.CPartyContactMech, QueryByCriteria from class net.enterprise.common.model.party.CPartyContactMech where [partyId = 1]) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.party_contact_mech_id,A0.party_id,A0.contact_mech_id,A0.from_date,A0.thru_date,A0.contact_mech_purpose_id FROM party_contact_mech A0 WHERE A0.party_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.contact_mech_type_id FROM contact_mech A0 WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.country_code,A0.area_code,A0.contact_number FROM phone_number A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org
Re: Class Hints
Jakob, -- with hints and extents defined for CContactMech Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); crit.addPathClass("contactMech", CPhoneNumber.class); Criteria critAddress = new Criteria(); critAddress.addEqualTo("partyId", partyId); critAddress.addPathClass("contactMech", CPostalAddress.class); crit.addOrCriteria(critAddress); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: getCollectionByQuery (class org.apache.ojb.broker.util.collections.RemovalAwareCollection, class net.enterprise.common.model.party.CPartyContactMech, QueryByCriteria from class net.enterprise.common.model.party.CPartyContactMech where [partyId = 1, [partyId = 1]]) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.party_contact_mech_id,A0.party_id,A0.contact_mech_id,A0.from_date,A0.thru_date,A0.contact_mech_purpose_id FROM party_contact_mech A0 WHERE A0.party_id = ? OR (A0.party_id = ?) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.contact_mech_type_id FROM contact_mech A0 WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.country_code,A0.area_code,A0.contact_number FROM phone_number A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.to_name,A0.attention,A0.address1,A0.address2,A0.city,A0.postal_code,A0.state_geo_id,A0.country_geo_id FROM postal_address A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Materialisation of object is finished, push 2objects to cache [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Push to cache: net.enterprise.common.model.party.CPartyContactMech{1} [org.apache.ojb.broker.cache.MaterializationCache] DEBUG: Push to cache: net.enterprise.common.model.contact.CContactMech{2} -- without hints and extents defined for CContactMech Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: getCollectionByQuery (class org.apache.ojb.broker.util.collections.RemovalAwareCollection, class net.enterprise.common.model.party.CPartyContactMech, QueryByCriteria from class net.enterprise.common.model.party.CPartyContactMech where [partyId = 1]) [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.party_contact_mech_id,A0.party_id,A0.contact_mech_id,A0.from_date,A0.thru_date,A0.contact_mech_purpose_id FROM party_contact_mech A0 WHERE A0.party_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.contact_mech_type_id FROM contact_mech A0 WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: SQL:SELECT A0.contact_mech_id,A0.country_code,A0.area_code,A0.contact_number FROM phone_number A0 INNER JOIN contact_mech A1 ON A0.contact_mech_id=A1.contact_mech_id WHERE A0.contact_mech_id = ? [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias] DEBUG: TableAlias(): using hints ? false [org.ap
Re: Class Hints
hi chris, please post the sql with and without the hints. jakob Chris Worley schrieb: Actually I don't think this problem is directly related to class hints. In a previous thread Armin mentioned to me that there was a but that will be fixed in the next released previouse email from Armin: > In the next version of OJB this will be fixed (or try the OJB_1_0_RELEASE branch from CVS) and > CParty party = (CParty) getBroker().getObjectByIdentity(oid); > will always return the correct object instance (CParty, CPartyGroup or Person) and you can directly cast to the real party type. -chris worley I am having a problem with class hints. They do not seem to work all the time with my configuration. If the PartyContactMech object is stored in the same instance of the server process that I retreive it in PartyContactMech.contactMech is populated with an instance of CPhoneNumber or CPostalAddress. If I try to reteive a records that were created in a previous instance of the process then PartyContactMech.contactMechs is populated with an instance of ContactMech. Integer partyId = (Integer) getParameter("partyId"); Criteria crit = new Criteria(); crit.addEqualTo("partyId", partyId); crit.addPathClass("contactMech", CPhoneNumber.class); Criteria critAddress = new Criteria(); critAddress.addEqualTo("partyId", partyId); critAddress.addPathClass("contactMech", CPostalAddress.class); crit.addOrCriteria(critAddress); Query query = QueryFactory.newQuery(CPartyContactMech.class, crit); Collection partyContactMechs = getBroker().getCollectionByQuery(query); setParameter("partyContactMechs", partyContactMechs); class-ref="net.enterprise.common.model.contact.CPhoneNumber"/> class-ref="net.enterprise.common.model.contact.CPostalAddress"/> - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
OJB CLOB Support
Hello all, In our application we use OJBs extensively. However, we have a CLOB field that needs to be populated within the application. I was trying to find documentation about OJB's support for *LOB objects at this link: http://db.apache.org/ojb/docu/howtos/howto-use-lobs.html However, all I could find was this: Strategy 1: Using streams for LOB I/O ## to be written # Strategy 2: Embedding OJB content in Java objects ## to be written # Querying CLOB content ## to be written # Is there any documentation out there that explains these concepts? Any help is greatly appreciated. Thanks. Regards, -Vamsi - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]