Hm seems like I'm a console freak then ;-)

I prefer controlled initial dataloads from a repository (to have version
history). And I do a lot of catalogue management actually using XSLT and XML
loads / uploads.

Well, too much operations minded from may day-job I guess.

Thanks for the hint. Maybe also something that needs to be added to the wiki
page?

Regards


Carsten


2010/10/22 BJ Freeman <[email protected]>

> the concept I went with  more self service.
> DB assignment in the TenantDataSource is created in a setup from the Base
> (default) DB. A script is run that actually creates the DB based on the
> System setup, then added to the TenantDataSource. At this point the script
> is not configurable and has to be modified based on how the provider has
> their DB server set up.
>
> The Seed data is loaded on the fly, not using Ant.
> they are then switched to their DB
> they are then sent to setup to build their system.
> This includes providing images for logos and other parameters to make their
> Themes, and that is loaded on the fly into their DB. this is similar to the
> products Images but instead creates a theme for this tenant.
>
> Based on the above the Tenant DB is stored in the TenantDataSource DB,
> instead of the entityengine.xml, as it was originally designed to do. So no
> restart of ofbiz is necessary.
>
> the ant configuration, in my opinion should only be used to setup the basic
> Tenant system.
>
> =========================
> BJ Freeman
>
> Strategic Power Office with Supplier Automation  <
> http://www.businessesnetwork.com/automation/viewforum.php?f=52>
> Specialtymarket.com  <http://www.specialtymarket.com/>
> Systems Integrator-- Glad to Assist
>
> Chat  Y! messenger: bjfr33man
>
>
> Carsten Schinzer sent the following on 10/22/2010 12:30 AM:
>
>  All,
>>
>>
>> I've done some extended research and have played around with the
>> configuration. I have taken the liberty to add my findings in a section on
>> Multitenant Configuraiton at:
>> https://cwiki.apache.org/confluence/display/OFBIZ/Multitenancy+support
>>
>> Please review and let me know your comments if there are any.
>> I guess with this we can close the issue and make life easier for the next
>> multitenant users.
>>
>> Regards
>>
>>
>> Carsten
>>
>> 2010/10/21 Scott Gray<[email protected]>
>>
>>  I really don't know much about the multi tenant functionality, it's new
>>> and
>>> I haven't used it.  But yeah you do need that tenant group mapped to a
>>> datasource, it contains a set of tables that are needed in addition to
>>> the
>>> separate tenant databases (I think).
>>>
>>> Regards
>>> Scott
>>>
>>> On 21/10/2010, at 11:57 PM, Carsten Schinzer wrote:
>>>
>>>  Well, so possibly a mistake in the documents as the multitenant
>>>>
>>> datasources
>>>
>>>> would be defined in the config file placed on data/... (as mentioned
>>>>
>>> above).
>>>
>>>> Using your aproach, I would be using the entityengine.xml to define any
>>>> datasource required?
>>>>
>>>> Then for data loading: How do I address a certain datasource?
>>>>
>>>> I had the idea to use defined readers like e.g.
>>>>    <entity-data-reader name="ext-tenant1"/>
>>>>
>>>> and define those readers only for the respective data sources.
>>>>
>>>> Does that make sense?
>>>> Thanks for the tip!
>>>> I'll play around a little with this idea.
>>>>
>>>> Just one last question: What is the dedicated TenantDatasources.xml file
>>>> then used for at all? To map the datasource to the respective tenant
>>>>
>>> logins?
>>>
>>>> Because irritatingly, this file also references jdbcUri, jdbcUsername
>>>> and
>>>> jdbcPassword. But all that I would have specified in entityengine.xml as
>>>> well.
>>>>
>>>> Well, it looks like I'd update some documents once I found my way
>>>> through
>>>> this. Stay tuned :)
>>>>
>>>> Regards
>>>>
>>>>
>>>> Carsten
>>>>
>>>>
>>>> 2010/10/21 Scott Gray<[email protected]>
>>>>
>>>>  OOTB in 10.04 the delegator definition looks like this:
>>>>>    <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="localderby"/>
>>>>>        <group-map group-name="org.ofbiz.olap"
>>>>> datasource-name="localderbyolap"/>
>>>>>        <group-map group-name="org.ofbiz.tenant"
>>>>> datasource-name="localderbytenant"/>
>>>>>   </delegator>
>>>>>
>>>>> Your one appears to be missing the last group-map for org.ofbiz.tenant
>>>>>
>>>> and
>>>
>>>> I'm guessing that is the problem.  I have no idea why you and BJ were
>>>>> missing that entry though, it was there before 10.04 existed.
>>>>>
>>>>> Regards
>>>>> Scott
>>>>>
>>>>> HotWax Media
>>>>> http://www.hotwaxmedia.com
>>>>>
>>>>> On 21/10/2010, at 9:42 PM, Carsten Schinzer wrote:
>>>>>
>>>>>  Hi Scott,
>>>>>>
>>>>>>
>>>>>> well, I digged out this old thread as the very same seemed happening
>>>>>> to
>>>>>>
>>>>> BJ
>>>>>
>>>>>> as well. Here's a little context:
>>>>>>
>>>>>> I am aiming at multitenant along with PostGreSQL database, i.e. I have
>>>>>> created the DB for each tenant.
>>>>>>
>>>>>> I changed entityengine.xml to use the localpostnew DataSource in the
>>>>>>
>>>>> default
>>>>>
>>>>>> 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="localpostnew"/>
>>>
>>>>       <group-map group-name="org.ofbiz.olap"
>>>>>> datasource-name="localderbyolap"/>
>>>>>>   </delegator>
>>>>>>
>>>>>> of course localpostnew is updated with connection string info as usual
>>>>>>
>>>>> and
>>>>>
>>>>>> the respective postgres drivers are placed in
>>>>>>
>>>>>>   {ofbiz-home}\framework\entity\lib\jdbc
>>>>>>
>>>>>> Now the multitenant info, i.e. the datasource setup for each Tenant's
>>>>>> database, went to the xml file in
>>>>>>   {ofbiz-home}\framework\entity\data\TenantDataSources.xml
>>>>>> (the filename is different and is updated accordingly in
>>>>>> {ofbiz-home}\framework\entity\ofbiz-component.xml
>>>>>>
>>>>>> If I choose the localderby datasource, everything goes just nice and
>>>>>>
>>>>> the
>>>
>>>> databases are generated, data loaded etc.
>>>>>>
>>>>>> If I change to the above configuration, i.e. using localpostnew, ofbiz
>>>>>> throws an exception as follows
>>>>>> *
>>>>>> COMMAND ISSUED:*
>>>>>> D:\__eclipse\ofbiz-multitenant>java -Xmx512m -XX:MaxPermSize=128m -jar
>>>>>> ofbiz.jar -install -readers=seed-initial -delegator=default
>>>>>>
>>>>>> *CONSOLE OUTPUT:*
>>>>>> Set OFBIZ_HOME to - D:/__eclipse/ofbiz-multitenant
>>>>>> (...)
>>>>>> 2010-10-20 18:28:34,283 (main) [        ModelReader.java:389:INFO ]
>>>>>>
>>>>> FINISHED
>>>>>
>>>>>> LOADING ENTITIES - ALL FILES; #Entities=849 #ViewEntities=267
>>>>>>
>>>>> #Fields=8870
>>>>>
>>>>>> #Relationships=2925 #AutoRelationships=2157
>>>>>> 2010-10-20 18:28:34,392 (main) [   GenericDelegator.java:244:INFO ]
>>>>>>
>>>>> Doing
>>>
>>>> entity definition check...
>>>>>> 2010-10-20 18:28:34,408 (main) [ ModelEntityChecker.java:502:INFO ]
>>>>>> [initReservedWords] array length=1023
>>>>>> Exception in thread "main" java.lang.NullPointerException
>>>>>>       at
>>>>>>
>>>>>>
>>>>> org.ofbiz.entity.GenericDelegator.getEntityFieldType(GenericDelegator.java:555)
>>>
>>>>       at
>>>>>>
>>>>>>
>>>>> org.ofbiz.entity.model.ModelEntityChecker.checkEntities(ModelEntityChecker.java:101)
>>>
>>>>       at
>>>>>> org.ofbiz.entity.GenericDelegator.<init>(GenericDelegator.java:245)
>>>>>>       at
>>>>>>
>>>>>>
>>>>> org.ofbiz.entity.DelegatorFactoryImpl.getInstance(DelegatorFactoryImpl.java:33)
>>>
>>>>       at
>>>>>>
>>>>>>
>>>>> org.ofbiz.entity.DelegatorFactoryImpl.getInstance(DelegatorFactoryImpl.java:25)
>>>
>>>>       at
>>>>>>
>>>>>> org.ofbiz.base.util.UtilObject.getObjectFromFactory(UtilObject.java:202)
>>>
>>>>       at
>>>>>>
>>>>>> org.ofbiz.entity.DelegatorFactory.getDelegator(DelegatorFactory.java:47)
>>>
>>>>       at
>>>>>>
>>>>>>
>>>>> org.ofbiz.entityext.data.EntityDataLoadContainer.start(EntityDataLoadContainer.java:230)
>>>
>>>>       at
>>>>>>
>>>>>> org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:100)
>>>
>>>>       at org.ofbiz.base.start.Start.startStartLoaders(Start.java:272)
>>>>>>       at org.ofbiz.base.start.Start.startServer(Start.java:322)
>>>>>>       at org.ofbiz.base.start.Start.start(Start.java:326)
>>>>>>       at org.ofbiz.base.start.Start.main(Start.java:411)
>>>>>> 2010-10-20 18:28:34,627 (OFBiz_Shutdown_Hook) [
>>>>>> ContainerLoader.java:113:INFO ] Shutting down containers
>>>>>>
>>>>>>
>>>>>> I would like to understand the following:
>>>>>>
>>>>>>  - what is going wrong? OFBIZ seems to have issues with the
>>>>>>  entityfieldtypes for postnew. This is not observed for single tenant
>>>>>>
>>>>> OFBIZ
>>>>>
>>>>>>  setups -- or no-one out there is using single instances on postgres
>>>>>>
>>>>> with
>>>>>
>>>>>>  release 10.04 or later.
>>>>>>  - how can I dig deeper into the issue? Reviewing the classes I do see
>>>>>>  sporadic log statement which I do not find back on the console,
>>>>>> hence:
>>>>>>
>>>>> where
>>>>>
>>>>>>  can I switch log levels for a component or the entire ofbiz instance?
>>>>>>
>>>>>> Hint for any of these two are much appreciated.
>>>>>> And thanks for focussing back on the topic :-)
>>>>>>
>>>>>> Regards
>>>>>>
>>>>>>
>>>>>> Carsten
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2010/10/21 Scott Gray<[email protected]>
>>>>>>
>>>>>>  Sorry my bad.
>>>>>>>
>>>>>>> Could you explain what changes you've made to the entityengine.xml
>>>>>>>
>>>>>> that
>>>
>>>> got
>>>>>
>>>>>> you to the point of something not working?
>>>>>>>
>>>>>>> Thanks
>>>>>>> Scott
>>>>>>>
>>>>>>> HotWax Media
>>>>>>> http://www.hotwaxmedia.com
>>>>>>>
>>>>>>> On 21/10/2010, at 6:04 PM, Carsten Schinzer wrote:
>>>>>>>
>>>>>>>  Hmmm. Again this has gone off towards debugging/logging (just like
>>>>>>>>
>>>>>>> the
>>>
>>>> older
>>>>>>>
>>>>>>>> thread from June).
>>>>>>>>
>>>>>>>> Anyone with proposals on how to include the Tenant datasources into
>>>>>>>> entityengine.xml as BJ indicated he had found a workaround for this
>>>>>>>>
>>>>>>> issue
>>>>>
>>>>>> that involves this? BJ?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>>
>>>>>>>> Carsten
>>>>>>>>
>>>>>>>> 2010/10/21 David E Jones<[email protected]>
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Oct 20, 2010, at 4:39 PM, Scott Gray wrote:
>>>>>>>>>
>>>>>>>>>  On 21/10/2010, at 10:39 AM, James McGill wrote:
>>>>>>>>>>
>>>>>>>>>>  On Mon, Jun 14, 2010 at 11:08 AM, BJ Freeman<[email protected]
>>>>>>>>>>>
>>>>>>>>>>
>>>>  wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>  Not sure why it worked in derby mode but not in postgresql.
>>>>>>>>>>>> but it hung up on the tenant entity.
>>>>>>>>>>>> but adding the tenant stuff into the entityengine.xml it no
>>>>>>>>>>>>
>>>>>>>>>>> longer
>>>
>>>> errors.
>>>>>>>>>
>>>>>>>>>> I am such a slouch I used one line of debug.loginfo to find the
>>>>>>>>>>>>
>>>>>>>>>>> problem.
>>>>>>>>>
>>>>>>>>>> someday I will put energy into the remote debugging.
>>>>>>>>>>>> :D
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> I find remote debugging is extremely easy, using Eclipse.  If
>>>>>>>>>>> only
>>>>>>>>>>>
>>>>>>>>>> there
>>>>>>>
>>>>>>>> was
>>>>>>>>>
>>>>>>>>>> a way to step into minilang services -- they make remote debugging
>>>>>>>>>>>
>>>>>>>>>> pretty
>>>>>>>>>
>>>>>>>>>> frustrating, especially if you want to breakpoint an ECA.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> You can cheat a little sometimes with that.  I regularly drop in
>>>>>>>>>>
>>>>>>>>> this:
>>>>>
>>>>>> <log level="always" message="${someVar}"/>
>>>>>>>>>> <transaction-rollback/>
>>>>>>>>>>
>>>>>>>>>> Obviously not as good as breakpoints but you can move it around
>>>>>>>>>> and
>>>>>>>>>>
>>>>>>>>> just
>>>>>>>
>>>>>>>> keep refreshing the browser to continually execute the method and
>>>>>>>>>
>>>>>>>> never
>>>>>
>>>>>> commit the changes.
>>>>>>>>>
>>>>>>>>> Actually, IMO, when you don't have to worry about compile/run
>>>>>>>>> cycles
>>>>>>>>>
>>>>>>>> I
>>>
>>>> like
>>>>>>>
>>>>>>>> logging better than break points and variable inspection. It
>>>>>>>>>
>>>>>>>> requires
>>>
>>>> a
>>>>>
>>>>>> little more typing, but a LOT less clicking and watching and
>>>>>>>>>
>>>>>>>> browsing
>>>
>>>> through data. In fact, IMO logging is faster when you don't have to
>>>>>>>>>
>>>>>>>> worry
>>>>>>>
>>>>>>>> about compilation making things intolerably slow. It's kind of like
>>>>>>>>> command-line versus a purely graphical way of doing things.
>>>>>>>>>
>>>>>>>>> Of course, to each their own... most programmers can't seem to
>>>>>>>>>
>>>>>>>> handle
>>>
>>>> something that they aren't used and/or wasn't their idea... ;)
>>>>>>>>>
>>>>>>>>> -David
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Best
>>>>>>>>
>>>>>>>> Carsten Schinzer
>>>>>>>>
>>>>>>>> Waisenhausstr. 53a
>>>>>>>> 80637 München
>>>>>>>> Germany
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Best
>>>>>>
>>>>>> Carsten Schinzer
>>>>>>
>>>>>> Waisenhausstr. 53a
>>>>>> 80637 München
>>>>>> Germany
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>>
>>>> Best
>>>>
>>>> Carsten Schinzer
>>>>
>>>> Waisenhausstr. 53a
>>>> 80637 München
>>>> Germany
>>>>
>>>
>>>
>>>
>>
>>
>


-- 

Best

Carsten Schinzer

Waisenhausstr. 53a
80637 München
Germany

Reply via email to