Hi Bruno,

Bruno CROS wrote:
i already have patch torque3.1.1.jar. thanks for advice. I've done since
start with the build.xml of ojb-blank.jar (so torque).

I have the right database generated now. That's a good point and i thank you
all.

On the other hand, i have 2 database connections and it seems they do not
work anymore. Of course, i can't see any errors. I d'ont known how to spy DB
connections !!? shame, i known.


you can use p6spy
http://db.apache.org/ojb/docu/faq.html#traceProfileSQL


The particularity of one of these connections is that the database has been
made with 1.0.1 OJB release.  Understand that this database is accessed by
my application, and by another one (bigger). So upgrading this DB is not so
suitable.

nevertheless, understand too, that my application need to be connected to
those two databses, mine in 1.0.4 and the big one in 1.0.1. At the same time
of course.

My doubts are about the repository_internal.xml ( describing OJB tables). If
these tables are not the same in the 2 DB. How could it work ??


Seems that the "default" connection doesn't require any of the internal OJB tables (if you don't use odmg named objects or the specific List/Map implementations).

"rushDb" use SequenceManagerHighLowImpl. In this case table OJB_HL_SEQ is mandatory. The metadata mapping of this object/table changed between 1.0.1 and 1.0.4 but not the column names (one column was removed between 1.0.1 and 1.0.4). Thus you could try to use the "old" table with the 1.0.4 mapping. If this doesn't work you could drop and recreate table OJB_HL_SEQ (OJB will automatically take care of existing id's and re-populate the table).

In "rushDb" you are using useAutoCommit="0". In this case it's mandatory that the jdbc-driver/DB disable the connection autoCommit property (else you will run into problems with tx-rollback).

regards,
Armin


You understand what i mean when you see my repository.xml file. and the 2
next files, parts of it.

==================
my repository.xml file
=====================

<!ENTITY databaseMathieu SYSTEM "repository_database_mathieu.xml">
<!ENTITY databaseRushDb SYSTEM "repository_database_rushDb.xml">
<!ENTITY internal SYSTEM "repository_internal.xml">
<!ENTITY user SYSTEM "repository_user.xml">
<!ENTITY rushDb SYSTEM "repository_rushDb.xml">
]>


<descriptor-repository version="1.0"
                      isolation-level="read-uncommitted"
                      proxy-prefetching-limit="50">


   <!-- connection Mathieu -->
   &databaseMathieu;
   <!-- connection rushDB -->
   &databaseRushDb;

   <!-- include ojb internal mappings here; comment this if you don't need
them -->
   &internal;

   <!-- mapping Mathieu -->
   &user;

   <!-- mapping RushDb -->
   &rushDb;


==================================
repository_database_mathieu.xml
===================================

   <!-- This connection is used as the default one within OJB -->
   <jdbc-connection-descriptor
    jcd-alias="default"
    default-connection="true"
    platform="Oracle9i"
    jdbc-level="2.0"
    driver="oracle.jdbc.driver.OracleDriver"
    protocol="jdbc"
    subprotocol="oracle"
    dbalias="thin:@P615-5:1521:MATHIEU"
    username="xxx"
    password="xxxx"
    batch-mode="false"
       useAutoCommit="1"
       ignoreAutoCommitExceptions="false"
    >



       <!--
           On initialization of connections the ConnectionFactory change
the 'autoCommit'
           state dependent of the used 'useAutoCommit' setting. This
doesn't work in all
           situations/environments, thus for useAutoCommit="1" the
ConnectionFactory does
           no longer set autoCommit to true on connection creation.
           To use the old behavior (OJB version 1.0.3 or earlier) set this
property
           to 'true', then OJB change the autoCommit state (if needed) of
           new obtained connections at connection initialization to 'true'.
           If 'false' or this property is removed, OJB don't try to change
connection
           autoCommit state at connection initialization.
       -->
       <attribute attribute-name="initializationCheck"
attribute-value="false" />

       <!-- alternative cache implementations, see docs section
"Caching" -->
       <object-cache
class="org.apache.ojb.broker.cache.ObjectCacheTwoLevelImpl">
           <!-- meaning of attributes, please see docs section
"Caching" -->
           <!-- common attributes -->
           <attribute attribute-name="cacheExcludes" attribute-value=""/>

           <!-- ObjectCacheTwoLevelImpl attributes -->
           <attribute attribute-name="applicationCache"
attribute-value="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl"/>
           <attribute attribute-name="copyStrategy"
attribute-value="org.apache.ojb.broker.cache.ObjectCacheTwoLevelImpl$CopyStr
ategyImpl"/>
           <attribute attribute-name="forceProxies"
attribute-value="false"/>

           <!-- ObjectCacheDefaultImpl attributes -->
           <attribute attribute-name="timeout" attribute-value="900"/>
           <attribute attribute-name="autoSync" attribute-value="true"/>
           <attribute attribute-name="cachingKeyType" attribute-value="0"/>
           <attribute attribute-name="useSoftReferences"
attribute-value="true"/>
       </object-cache>

       <!-- For more info, see section "Connection Handling" in docs -->
       <connection-pool
           maxActive="30"
           validationQuery=""
           testOnBorrow="true"
           testOnReturn="false"
           whenExhaustedAction="0"
           maxWait="10000">

           <!-- Set fetchSize to 0 to use driver's default. -->
           <attribute attribute-name="fetchSize" attribute-value="0"/>

           <!-- Attributes with name prefix "jdbc." are passed directly to
the JDBC driver. -->
           <!-- Example setting (used by Oracle driver when Statement
batching is enabled) -->
           <attribute attribute-name="jdbc.defaultBatchValue"
attribute-value="5"/>

           <!-- Attributes determining if ConnectionFactoryDBCPImpl
                should also pool PreparedStatement. This is
programmatically disabled
                when using platform=Oracle9i since Oracle statement caching
will conflict
                with DBCP ObjectPool-based PreparepdStatement caching (ie
setting true
                here has no effect for Oracle9i platform). -->
           <attribute attribute-name="dbcp.poolPreparedStatements"
attribute-value="false"/>
           <attribute attribute-name="dbcp.maxOpenPreparedStatements"
attribute-value="10"/>
           <!-- Attribute determining if the Commons DBCP connection
wrapper will allow
                access to the underlying concrete Connection instance from
the JDBC-driver
                (normally this is not allowed, like in J2EE-containers
using wrappers). -->
           <attribute
attribute-name="dbcp.accessToUnderlyingConnectionAllowed"
attribute-value="false"/>
       </connection-pool>

 <sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
 <attribute attribute-name="autoNaming" attribute-value="true"/>
 </sequence-manager>

  </jdbc-connection-descriptor>

  <!-- Datasource example -->
   <!-- jdbc-connection-descriptor
       jcd-alias="default"
       default-connection="true"
    platform="Hsqldb"
    jdbc-level="2.0"
    jndi-datasource-name="java:DefaultDS"
    username="sa"
    password=""
       batch-mode="false"
       useAutoCommit="0"
       ignoreAutoCommitExceptions="false"
  >
       Add the other elements like object-cache, connection-pool,
sequence-manager here.

  </jdbc-connection-descriptor -->

==============================================
repository_database_rushDb.xml
==============================================


   <!-- This connection is used as the default one within OJB -->
   <jdbc-connection-descriptor
    jcd-alias="rushDb"
    default-connection="false"
    platform="MsSQLServer"
    jdbc-level="2.0"
    driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
    protocol="JDBC"
    subprotocol="microsoft:sqlserver"
    dbalias="//xxx.x.x.x:xxxx"
    username="xxx"
    password="xxxx"
    batch-mode="true"
       useAutoCommit="0"
       ignoreAutoCommitExceptions="true"
    >

       <!--
           On initialization of connections the ConnectionFactory change
the 'autoCommit'
           state dependent of the used 'useAutoCommit' setting. This
doesn't work in all
           situations/environments, thus for useAutoCommit="1" the
ConnectionFactory does
           no longer set autoCommit to true on connection creation.
           To use the old behavior (OJB version 1.0.3 or earlier) set this
property
           to 'true', then OJB change the autoCommit state (if needed) of
           new obtained connections at connection initialization to 'true'.
           If 'false' or this property is removed, OJB don't try to change
connection
           autoCommit state at connection initialization.
       -->
       <attribute attribute-name="initializationCheck"
attribute-value="false" />

       <!-- alternative cache implementations, see docs section
"Caching" -->
       <object-cache
class="org.apache.ojb.broker.cache.ObjectCacheTwoLevelImpl">
           <!-- meaning of attributes, please see docs section
"Caching" -->
           <!-- common attributes -->
           <attribute attribute-name="cacheExcludes" attribute-value=""/>

           <!-- ObjectCacheTwoLevelImpl attributes -->
           <attribute attribute-name="applicationCache"
attribute-value="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl"/>
           <attribute attribute-name="copyStrategy"
attribute-value="org.apache.ojb.broker.cache.ObjectCacheTwoLevelImpl$CopyStr
ategyImpl"/>
           <attribute attribute-name="forceProxies"
attribute-value="false"/>

           <!-- ObjectCacheDefaultImpl attributes -->
           <attribute attribute-name="timeout" attribute-value="900"/>
           <attribute attribute-name="autoSync" attribute-value="true"/>
           <attribute attribute-name="cachingKeyType" attribute-value="0"/>
           <attribute attribute-name="useSoftReferences"
attribute-value="true"/>
       </object-cache>

       <!-- For more info, see section "Connection Handling" in docs -->
       <connection-pool
           maxActive="30"
           validationQuery=""
           testOnBorrow="true"
           testOnReturn="false"
           whenExhaustedAction="0"
           maxWait="10000">

           <!-- Set fetchSize to 0 to use driver's default. -->
           <attribute attribute-name="fetchSize" attribute-value="0"/>

           <!-- Attributes with name prefix "jdbc." are passed directly to
the JDBC driver. -->
           <!-- Example setting (used by Oracle driver when Statement
batching is enabled) -->
           <attribute attribute-name="jdbc.defaultBatchValue"
attribute-value="5"/>

           <!-- Attributes determining if ConnectionFactoryDBCPImpl
                should also pool PreparedStatement. This is
programmatically disabled
                when using platform=Oracle9i since Oracle statement caching
will conflict
                with DBCP ObjectPool-based PreparepdStatement caching (ie
setting true
                here has no effect for Oracle9i platform). -->
           <attribute attribute-name="dbcp.poolPreparedStatements"
attribute-value="false"/>
           <attribute attribute-name="dbcp.maxOpenPreparedStatements"
attribute-value="10"/>
           <!-- Attribute determining if the Commons DBCP connection
wrapper will allow
                access to the underlying concrete Connection instance from
the JDBC-driver
                (normally this is not allowed, like in J2EE-containers
using wrappers). -->
           <attribute
attribute-name="dbcp.accessToUnderlyingConnectionAllowed"
attribute-value="false"/>
       </connection-pool>

       <!-- alternative sequence manager implementations, see "Sequence
Manager" guide -->
       <sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">
           <!-- attributes supported by SequenceManagerHighLowImpl,
           SequenceManagerInMemoryImpl, SequenceManagerNextValImpl
           please see "Sequence Manager" guide or/and javadoc of class for
more information -->
           <attribute attribute-name="seq.start" attribute-value="200000"/>
           <attribute attribute-name="autoNaming" attribute-value="true"/>

           <!-- attributes supported by SequenceManagerHighLowImpl
           please see "Sequence Manager" guide or/and javadoc of classes
for more information -->
           <attribute attribute-name="grabSize" attribute-value="20"/>

           <!-- optional attributes supported by SequenceManagerNextValImpl
(support depends
           on the used database), please see "Sequence Manager" guide
or/and javadoc of
           classes for more information -->
           <!-- attribute attribute-name="seq.as"
attribute-value="INTEGER"/ -->
           <!-- attribute attribute-name="seq.incrementBy"
attribute-value="1"/ -->
           <!-- attribute attribute-name="seq.maxValue"
attribute-value="999999999999999999999999999"/ -->
           <!-- attribute attribute-name="seq.minValue"
attribute-value="1"/ -->
           <!-- attribute attribute-name="seq.cycle"
attribute-value="false"/ -->
           <!-- attribute attribute-name="seq.cache"
attribute-value="20"/ -->
           <!-- attribute attribute-name="seq.order"
attribute-value="false"/ -->

       </sequence-manager>
  </jdbc-connection-descriptor>

  <!-- Datasource example -->
   <!-- jdbc-connection-descriptor
       jcd-alias="default"
       default-connection="true"
    platform="Hsqldb"
    jdbc-level="2.0"
    jndi-datasource-name="java:DefaultDS"
    username="sa"
    password=""
       batch-mode="false"
       useAutoCommit="0"
       ignoreAutoCommitExceptions="false"
  >
       Add the other elements like object-cache, connection-pool,
sequence-manager here.

  </jdbc-connection-descriptor -->




On 2/3/06, Thomas Dudziak <[EMAIL PROTECTED]> wrote:
On 2/3/06, Bruno CROS <[EMAIL PROTECTED]> wrote:

i 'm afraid i need to repatch distributed torque-gen-3.1.1.jar  to  have
TIMESTAMP  jdbc type created for   java.sql.Date and java.sql.timestampas i
wrote in an old old post. (specific to oracle 9i and older )
You might want to try DdlUtils (http://db.apache.org/ddlutils ) instead
of Torque, it uses the same schema format and contains an Oracle9 (and
an Oracle10 one) platform that can use TIMESTAMP.

Tom

---------------------------------------------------------------------
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]

Reply via email to