Thank you Youssef!

now I understood that the delegator name ="default"
together with the group statements
should cause ofbiz to read of the records
of the external database (what is exactly
what I want to achieve).

With the new datasource definition now there are still (and also some
new) error messages concerning the database driver and about the
connection to the external database:

        at java.lang.Thread.run(Thread.java:745) [?:1.7.0_65]
20141217120652329 |OFBiz-config-0       |DatabaseUtil        |E| Unable
to establish a connection with the database for helperName [platfo]...
Error was: org.ofbiz.entity.GenericEntityException:
com.mysql.jdbc.Driver (com.mysql.jdbc.Driver)
20141217120652329 |OFBiz-config-0       |DatabaseUtil        |E| Unable
to establish a connection with the database, no additional information
available.
20141217120652329 |OFBiz-config-0       |DatabaseUtil        |E| Could
not get table name information from the database, aborting.
20141217120652329 |OFBiz-config-2       |BCPConnectionFactory|E| null
java.lang.ClassNotFoundException: Cached loader got a known bad class
name: com.mysql.jdbc.Driver
        at
org.ofbiz.base.util.CachedClassLoader.loadClass(CachedClassLoader.java:182)
~[ofbiz-base.jar:?]
        at
org.ofbiz.base.util.CachedClassLoader.loadClass(CachedClassLoader.java:162)
~[ofbiz-base.jar:?]
        at java.lang.Class.forName0(Native Method) ~[?:1.7.0_65]
        at java.lang.Class.forName(Class.java:274) ~[?:1.7.0_65]
        at
org.ofbiz.entity.connection.DBCPConnectionFactory.getConnection(DBCPConnectionFactory.java:87)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.jdbc.ConnectionFactory.getManagedConnection(ConnectionFactory.java:121)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.geronimo.GeronimoTransactionFactory.getConnection(GeronimoTransactionFactory.java:83)
[ofbiz-geronimo.jar:?]
        at
org.ofbiz.entity.transaction.TransactionFactory.getConnection(TransactionFactory.java:82)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:97)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.jdbc.DatabaseUtil.getConnection(DatabaseUtil.java:135)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.jdbc.DatabaseUtil.getConnectionLogged(DatabaseUtil.java:155)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.jdbc.DatabaseUtil.getTableNames(DatabaseUtil.java:977)
[ofbiz-entity-test.jar:?]
        at org.ofbiz.entity.jdbc.DatabaseUtil.checkDb(DatabaseUtil.java:189)
[ofbiz-entity-test.jar:?]
        at org.ofbiz.entity.jdbc.DatabaseUtil.checkDb(DatabaseUtil.java:178)
[ofbiz-entity-test.jar:?]
        at org.ofbiz.entity.datasource.GenericDAO.checkDb(GenericDAO.java:1234)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.datasource.GenericHelperDAO.checkDataSource(GenericHelperDAO.java:200)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.GenericDelegator.initializeOneGenericHelper(GenericDelegator.java:286)
[ofbiz-entity-test.jar:?]
        at
org.ofbiz.entity.GenericDelegator.access$000(GenericDelegator.java:87)
[ofbiz-entity-test.jar:?]
        at org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:297)
[ofbiz-entity-test.jar:?]
        at org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:295)
[ofbiz-entity-test.jar:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_65]
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
[?:1.7.0_65]
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
[?:1.7.0_65]
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[?:1.7.0_65]
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[?:1.7.0_65]
        at java.lang.Thread.run(Thread.java:745) [?:1.7.0_65]
eadPoolExecutor.java:615) [?:1.7.0_65]
        at java.lang.Thread.run(Thread.java:745) [?:1.7.0_65]

--------------------------------------------------------------------------------

My changeddatasource definition:        
<datasource name="platfo"
                            
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
                            field-type-name="mysql"
                            check-on-start="true"
                            add-missing-on-start="true"
                            check-pks-on-start="false"
                            use-foreign-keys="true"
                            join-style="ansi-no-parenthesis"
                            alias-view-columns="false"
                            drop-fk-use-foreign-key-keyword="true"
                            table-type="InnoDB"
                            character-set="latin1"
                            collate="latin1_general_cs">
                        <read-data reader-name="seed"/>
                        <read-data reader-name="seed-initial"/>
                        <read-data reader-name="demo"/>
                        <read-data reader-name="ext"/>
                        <read-data reader-name="main"/>
                        <inline-jdbc
                                jdbc-driver="com.mysql.jdbc.Driver"
                                jdbc-uri="jdbc:mysql://127.0.0.1:3306/wp_platfo"
                                jdbc-username="test"
                                jdbc-password="test"
                                isolation-level="ReadCommitted"
                                pool-minsize="2"
                                pool-maxsize="250"
                                time-between-eviction-runs-millis="600000" />   
                </datasource>                   


and delegator:


                <delegator name="default" entity-model-reader="main"
                  entity-group-reader="main" entity-eca-reader="main"
                  distributed-cache-clear-enabled="false">
                  <group-map group-name="org.ofbiz" datasource-name="platfo"/>
                  <group-map group-name="org.ofbiz.olap" 
datasource-name="platfo"/>
                  <group-map group-name="org.ofbiz.tenant" 
datasource-name="platfo"/>
                </delegator>



Thanks again!



Am 12.12.2014 um 17:46 schrieb Youssef Khaye:
> I will try to answer, even if i don't understand your use case at 100%
> 
> Hi for your second question the answer is no.
> 
> For your first question you should show us your entityengine.xml
> There is two different cases where  you can use a second database.
> 
> 
> Case 1 use a diffrent delegator (from your first post, i think that you
> fill in this case), to get record you should instanciate
> 
> a  delegator using the name you declared in entityegine.xml
> <delegator name="default" entity-model-reader="main"
> entity-group-reader="main" entity-eca-reader="main"
> distributed-cache-clear-enabled="false">
>         <group-map group-name="org.ofbiz" datasource-name="localpostgres"/>
>         <group-map group-name="org.ofbiz.olap"
> datasource-name="localpostgres"/>
>         <group-map group-name="org.ofbiz.tenant"
> datasource-name="localpostgres"/>
> </delegator>
> 
> <delegator name="mysqlDb" entity-model-reader="main"
> entity-group-reader="main" entity-eca-reader="main"
> distributed-cache-clear-enabled="false">
>         <group-map group-name="com.custom datasource-name="sqlDataSource"/>
> </delegator>
> 
> then in your service
> delegator = delagtor.geInstance("mysqlDb")
> then use the entity API to get record from your DB.
> 
> 
> Case 2
> In the same delegator you may assign a diffrent dataSource, that point
> to the external DB, to a given package.
> 
> <delegator name="default" entity-model-reader="main"
> entity-group-reader="main" entity-eca-reader="main"
> distributed-cache-clear-enabled="false">
>         <group-map group-name="org.ofbiz" datasource-name="localpostgres"/>
>         <group-map group-name="com.custom datasource-name="sqlDataSource"/>
>         <group-map group-name="org.ofbiz.olap"
> datasource-name="localpostgres"/>
>         <group-map group-name="org.ofbiz.tenant"
> datasource-name="localpostgres"/>
> </delegator>
> In this case the defeault delegator you get in a service can fetch
> record from any entity in the com.custom package.
> 
> Personnaly, I use the first one if I need the external database in
> limited area of my OFBiz.
> 
> The second one is suitable if you need to access your external db in
> many areas of your OFBiz
> 
> 
> Le 12/12/2014 09:03, i...@agentur-m3.de a écrit :
>> Hi All!
>>
>> after setting up the connection with an external database
>> without errors I have two more questions, on which I
>> could not find some specific information:
>>
>> (1) after setting up an entity, a delegator and
>> I datasource, which seem to work together now,
>> how (or where?) is the exchange of RECORDS with the
>> external database? ofbiz does not seem to
>> automatically detect and show the records from the
>> mysql-database.
>> Maybe my entity definitions are still wrong,
>> but then without error messages.
>> However: no records are imported or displayed
>> in the view. So: how can I get them from the mysql-database?
>>
>> Also unexpected to me: when I create new records in ofbiz,
>> they are displayed in ofbiz after creation (as one would
>> expect for any regular entity) but they are not transferred to
>> to the external mysql-database (which I guess could be
>> the purpose of a entity with associated externally
>> referenced datasource).
>>
>> So it seems that ofbiz did recognize the structure of
>> the external mysql-database, but then ignores to
>> exchange the data between ofbiz and the database.
>>
>> So how does ofbiz exchange records between
>> ofbiz and the external database (in a synchronized way)?
>>
>> Is there further setup or custom implmentation necessary?
>>
>> (2) the setup of a datasource is placed in entityengine.xml
>> in the framework/entity/config folder.
>> Is there a way to extend it with entries
>> defined in hot-deploy/.../entitydef/config/entityengine.xml ?
>>
>> I tried to setup another entityengine.xml there,
>> but this approach seemed to be ignored by ofbiz.
>>
>>
>> Thank you!
>>
>>
>>
>>
>>
>>
>>
>>
>>
> 
> 

Reply via email to