researching and developing the tools as I write this.

hopefully and christmas present to ofbiz.
will put in Docbooks help when ready, via a jira.


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


Jacques Le Roux sent the following on 12/5/2010 5:23 AM:
"Webtools converters to go from wiki to dochelp and dochelp to wiki" ?
Where it is? An URL? A service?

Thanks

Jacques

From: "BJ Freeman" <bjf...@free-man.net>
sounds good, I hope you don't mind that I put my energy into the
putting these into the ofbiz dochelp.
http://demo-trunk.ofbiz.apache.org/cmssite/cms/APACHE_OFBIZ_HTML
based on my email in Dev,
I decided that it is more productive in my time to put everything in
dockhelp and use webtools converters to go from wiki to dochelp and
dochelp to wiki. Or what every format we decide, like the PDF and Html.



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


Jacques Le Roux sent the following on 12/5/2010 2:12 AM:
I agree that it should be splitted. But IMO not in pages but clear
sections in the same page.
This because it's easier to find the same thing in the same page when
you are looking for the information without following a
specific path (ie when using search in wiki or even outside of the wiki)

From
https://cwiki.apache.org/confluence/display/OFBIZ/Physical+Architecture+patterns+for+OFBiz



You propose
Multitenancy Basic Architecture
Multitenancy for Automated self service
Multitenancy support

I think we should 1st check/refactor the current page
https://cwiki.apache.org/confluence/display/OFBIZ/Multitenancy+support

And then split in sections following the page you proposed but still in
the sole Multitenancy+support page

Also we need to clean the Physical+Architecture+patterns+for+OFBiz page
and at some point those pages should be move to OFBiz Technical
Documentation space. Though it's closed and there are less and less
efforts in the closed part of the wiki :/, which makes me wonder about
it...

I will be happy to help, what do you think?

Jacques

From: "BJ Freeman" <bjf...@free-man.net>
I looked at
https://cwiki.apache.org/confluence/display/OFBIZ/Multitenancy+support
and
the focus seems to being diluted and confusing.
I suggest some be moved to
https://cwiki.apache.org/confluence/display/OFBIZ/Physical+Architecture+patterns+for+OFBiz


as with different pages for different tenant architectures.

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


BJ Freeman sent the following on 12/4/2010 11:45 AM:
thanks, no, will.


Jacques Le Roux sent the following on 12/4/2010 10:05 AM:
You wrote

the concept I went with more self service.
DB assignment in the TenantDataSource is created in a setup from
the
Base

That's what I was talking about. Did you explain it in the wiki page?

Jacques

From: "BJ Freeman" <bjf...@free-man.net>
can you clarify what you asking about, couple of key words would
help.

I think the answer is Yes, but not sure what I am saying yes to.
:D

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

Jacques Le Roux sent the following on 12/3/2010 7:53 PM:

Hi BJ,

Did you get a change to add your way of doing it?

Jacques

From: "Carsten Schinzer" <c.schin...@googlemail.com>
Yup, It's runnign here and soon for some customers.
But you're right: I am not intending to do much of dynamic,
self-service
stuff since my offer looks more after "managed services" including
data
loads, configuration help etc.
That's why I can still afford to have "maintenance windows" and my
customers
are local shops who mostly don't care when they can't access their
tools
during weekend-eve's (and we're all one single timeezone as well).

So forgive me if I have messed up anything in the documentation,
but
maybe
it's worth we describe both ways in the online documentation?

Regards


Carsten

2010/10/22 BJ Freeman <bjf...@free-man.net>

just a thought, you can use a schedule service to export entities
like is
done by webtools.
this gives you your data that has been added.
a timed service or cron job can run a svn update for your local
svn.
this gives you versoning, as well a reload abiliity, if necessary


So your documentation of using the entityengine.xml and Ant for
tenant
says
that the whole tenant systems has to be shutdown, every time you
add a
tenant. i can see that for a intranet type of website, but not
for and
internet type of website. For an internet type you would have to
have
scheduled maintainence, which mean the new client has to wait, or
daily
maintainence that means the other tenants are interrupted a lot.

I have not looked at the code, but I don't think that those loaded
from the
entityengine.xml for tenants are access by the tenant code,
since it
is not
loaded into the cache for the entity TenantDataSource.
Have you run the setup you documented?




=========================
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 6:39 AM:



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<bjf...@free-man.net>

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<scott.g...@hotwaxmedia.com>

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<scott.g...@hotwaxmedia.com>

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<scott.g...@hotwaxmedia.com>

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<d...@me.com>


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<
bjf...@free-man.net



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


























Reply via email to