You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Taher Alkhateeb <sl...@gmail.com> on 2016/06/02 06:34:21 UTC

Question on multiple starting ofbiz

Hello Folks,

 

My question is the following: is OFBiz allowed to start multiple times from
the main method (difference tenants, different offset ports, whatever.)?

 

The reason I ask is because the startup logic in OFBiz is made more complex
because it assumes multiple starts. For example:

-          Checking if a classloader is set or not

-          Applying locks on StartupLoaders to prevent multiple threads from
altering them

 

Is this code unnecessary? Should I assume that OFBiz never calls the startup
sequence more than once?

 

Regards,

 

Taher Alkhateeb

 

 


Re: Question on multiple starting ofbiz

Posted by Jacques Le Roux <ja...@les7arts.com>.
I believe it's related with your changes but I have no evidences yet.

I have to move now but I'll come back in less than hour and will continue to give you a firm answer about the reason (playing with reverting releases 
which seems easier than debugging)

In the meantime I think it's reasonable to wait but if you prefer you can continue, I don't think new changes there would prevent to find the root cause.

Jacques


Le 02/06/2016  14:07, Taher Alkhateeb a crit :
> Hi Jacques,
>
> Sure I will wait until we resolve this issue but I am a bit confused. Is it
> a commit related to the refactoring work in OFBIZ-6783 that results in not
> receiving the HTML feed? Or are you just asking me to wait so that we do not
> cross wires and be able to identify root cause?
>
> Regards,
>
> Taher Alkhateeb
>
> -----Original Message-----
> From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com]
> Sent: 02 June 2016 14:26
> To: dev@ofbiz.apache.org
> Subject: Re: Question on multiple starting ofbiz
>
> Hi Taher,
>
> Before going down in this, I believe there is something you need to work on
> first. It's related to the point 2 of my recent thread "Tests issues"? I
> copy it for you
>
>> 2. Related with a framework recent change we no longer feed the HTML
>> results https://ci.apache.org/projects/ofbiz/logs/trunk/
>> So it's harder to check which test/s was/were impacted by the data
>> change (only?). The error which prevents the HTML results creation, in
>> log is
>>
>>       [java] Exception in thread "main"
>> org.ofbiz.base.start.StartupException: Cannot start()
>> org.ofbiz.testtools.TestRunContainer (Test run was
>> unsuccessful)
>>       [java]     at
> org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
>>       [java]     at
> org.ofbiz.base.start.StartupControlPanel.startStartupLoaders(StartupControlP
> anel.java:270)
>>       [java]     at
> org.ofbiz.base.start.StartupControlPanel.start(StartupControlPanel.java:107)
>>       [java]     at org.ofbiz.base.start.Start.main(Start.java:84)
>>       [java] Caused by: org.ofbiz.base.container.ContainerException: Test
> run was unsuccessful
>>       [java]     at
> org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:193)
>>       [java]     at
> org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:237)
>>       [java]     ... 3 more
> I have the debugger on it, but just checked the mail so prefer to warn you.
> I'll tell you soon if I got more info. In the meantime better to wait (or
> help) ;)
>
> Thanks
>
> Jacques
>
> Le 02/06/2016  11:17, Taher Alkhateeb a crit :
>> Hey Gareth and Jacques,
>>
>> OK, so this means the startup design is unnecessary (making the start
>> class a singleton). Instead we can simply declare the variables Config
>> and ServerState as static because any new call to the startup logic
>> using "java -jar ofbiz.jar" is going to launch a new JVM. This whole
>> description at the top of the class is hence confusing: "This class
>> uses a singleton pattern to guarantee that only one server instance is
>> running in the VM". Of course only one instance is going to run in the
>> VM because only one ServerSocket may be set per VM.
>>
>> Anyway, things are very clear now. The start sequence only executes
>> once per JVM. This makes locks and all kinds of elaborate checking
>> unnecessary. I will start cleaning that up!
>>
>> Cheers
>>
>> Taher Alkhateeb
>>
>> -----Original Message-----
>> From: Gareth Carter [mailto:Gareth.Carter@stannah.co.uk]
>> Sent: 02 June 2016 10:58
>> To: dev@ofbiz.apache.org
>> Subject: RE: Question on multiple starting ofbiz
>>
>> We have a server with multiple instances of ofbiz running using port
> offset.
>> But these are completely separate java processes, separate
>> classloaders and locks etc
>>
>> You would not even be able to start the same instance multiple times
>> (maybe POS?), port numbers would be in use unless you change the port
>> offset
>>
>> It could that the developer who created the code did so out of habit,
>> ofbiz may work exactly the same with or without it
>>
>> -----Original Message-----
>> From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com]
>> Sent: 02 June 2016 8:38 AM
>> To: dev@ofbiz.apache.org
>> Subject: Re: Question on multiple starting ofbiz
>>
>> OOTB, because of the admin port I don't know of any ways to start
>> OFBiz multiple time.
>>
>> The both option only allows to start the POS and the rest, but for the
>> same reason only one time.
>>
>> It could be that this was introduced for external projects, then
>> please chime in...
>>
>> Jacques
>>
>> Le 02/06/2016  08:34, Taher Alkhateeb a crit :
>>> Hello Folks,
>>>
>>>     
>>>
>>> My question is the following: is OFBiz allowed to start multiple
>>> times from the main method (difference tenants, different offset
>>> ports,
>> whatever.)?
>>>     
>>>
>>> The reason I ask is because the startup logic in OFBiz is made more
>>> complex because it assumes multiple starts. For example:
>>>
>>> -          Checking if a classloader is set or not
>>>
>>> -          Applying locks on StartupLoaders to prevent multiple threads
>> from
>>> altering them
>>>
>>>     
>>>
>>> Is this code unnecessary? Should I assume that OFBiz never calls the
>>> startup sequence more than once?
>>>
>>>     
>>>
>>> Regards,
>>>
>>>     
>>>
>>> Taher Alkhateeb
>>>
>>>     
>>>
>>>     
>>>
>>>
>>
>> To report this email as spam, please send the original message,
>> complete with headers to spam@websense.com
>>
>>
>> This email is intended only for the above addressee. It may contain
>> privileged information. If you are not the addressee you must not
>> copy, distribute, disclose or use any of the information in it. If you
>> have received it in error, please delete it and notify the sender.
>>
>> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management
>> Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
> No.
>> 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts
>> Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.
>>
>> All registered offices at Watt Close, East Portway, Andover,
>> Hampshire, SP10 3SD, England.
>>
>> All Registered in England and Wales.
>>
>> This message has been scanned for malware by Websense.
>> www.websense.com
>>
>>
>>
>
>
>


RE: Question on multiple starting ofbiz

Posted by Taher Alkhateeb <sl...@gmail.com>.
Hi Jacques,

Sure I will wait until we resolve this issue but I am a bit confused. Is it
a commit related to the refactoring work in OFBIZ-6783 that results in not
receiving the HTML feed? Or are you just asking me to wait so that we do not
cross wires and be able to identify root cause?

Regards,

Taher Alkhateeb

-----Original Message-----
From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com] 
Sent: 02 June 2016 14:26
To: dev@ofbiz.apache.org
Subject: Re: Question on multiple starting ofbiz

Hi Taher,

Before going down in this, I believe there is something you need to work on
first. It's related to the point 2 of my recent thread "Tests issues"? I
copy it for you

> 2. Related with a framework recent change we no longer feed the HTML 
> results https://ci.apache.org/projects/ofbiz/logs/trunk/
> So it's harder to check which test/s was/were impacted by the data 
> change (only?). The error which prevents the HTML results creation, in 
> log is
>
>      [java] Exception in thread "main" 
> org.ofbiz.base.start.StartupException: Cannot start() 
> org.ofbiz.testtools.TestRunContainer (Test run was
> unsuccessful)
>      [java]     at
org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
>      [java]     at
org.ofbiz.base.start.StartupControlPanel.startStartupLoaders(StartupControlP
anel.java:270)
>      [java]     at
org.ofbiz.base.start.StartupControlPanel.start(StartupControlPanel.java:107)
>      [java]     at org.ofbiz.base.start.Start.main(Start.java:84)
>      [java] Caused by: org.ofbiz.base.container.ContainerException: Test
run was unsuccessful
>      [java]     at
org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:193)
>      [java]     at
org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:237)
>      [java]     ... 3 more

I have the debugger on it, but just checked the mail so prefer to warn you.
I'll tell you soon if I got more info. In the meantime better to wait (or
help) ;)

Thanks

Jacques

Le 02/06/2016 à 11:17, Taher Alkhateeb a écrit :
> Hey Gareth and Jacques,
>
> OK, so this means the startup design is unnecessary (making the start 
> class a singleton). Instead we can simply declare the variables Config 
> and ServerState as static because any new call to the startup logic 
> using "java -jar ofbiz.jar" is going to launch a new JVM. This whole 
> description at the top of the class is hence confusing: "This class 
> uses a singleton pattern to guarantee that only one server instance is 
> running in the VM". Of course only one instance is going to run in the 
> VM because only one ServerSocket may be set per VM.
>
> Anyway, things are very clear now. The start sequence only executes 
> once per JVM. This makes locks and all kinds of elaborate checking 
> unnecessary. I will start cleaning that up!
>
> Cheers
>
> Taher Alkhateeb
>
> -----Original Message-----
> From: Gareth Carter [mailto:Gareth.Carter@stannah.co.uk]
> Sent: 02 June 2016 10:58
> To: dev@ofbiz.apache.org
> Subject: RE: Question on multiple starting ofbiz
>
> We have a server with multiple instances of ofbiz running using port
offset.
> But these are completely separate java processes, separate 
> classloaders and locks etc
>
> You would not even be able to start the same instance multiple times 
> (maybe POS?), port numbers would be in use unless you change the port 
> offset
>
> It could that the developer who created the code did so out of habit, 
> ofbiz may work exactly the same with or without it
>
> -----Original Message-----
> From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com]
> Sent: 02 June 2016 8:38 AM
> To: dev@ofbiz.apache.org
> Subject: Re: Question on multiple starting ofbiz
>
> OOTB, because of the admin port I don't know of any ways to start 
> OFBiz multiple time.
>
> The both option only allows to start the POS and the rest, but for the 
> same reason only one time.
>
> It could be that this was introduced for external projects, then 
> please chime in...
>
> Jacques
>
> Le 02/06/2016 à 08:34, Taher Alkhateeb a écrit :
>> Hello Folks,
>>
>>    
>>
>> My question is the following: is OFBiz allowed to start multiple 
>> times from the main method (difference tenants, different offset 
>> ports,
> whatever.)?
>>    
>>
>> The reason I ask is because the startup logic in OFBiz is made more 
>> complex because it assumes multiple starts. For example:
>>
>> -          Checking if a classloader is set or not
>>
>> -          Applying locks on StartupLoaders to prevent multiple threads
> from
>> altering them
>>
>>    
>>
>> Is this code unnecessary? Should I assume that OFBiz never calls the 
>> startup sequence more than once?
>>
>>    
>>
>> Regards,
>>
>>    
>>
>> Taher Alkhateeb
>>
>>    
>>
>>    
>>
>>
>
>
> To report this email as spam, please send the original message, 
> complete with headers to spam@websense.com
>
>
> This email is intended only for the above addressee. It may contain 
> privileged information. If you are not the addressee you must not 
> copy, distribute, disclose or use any of the information in it. If you 
> have received it in error, please delete it and notify the sender.
>
> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management 
> Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered
No.
> 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts 
> Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.
>
> All registered offices at Watt Close, East Portway, Andover, 
> Hampshire, SP10 3SD, England.
>
> All Registered in England and Wales.
>
> This message has been scanned for malware by Websense. 
> www.websense.com
>
>
>



Re: Question on multiple starting ofbiz

Posted by Jacques Le Roux <ja...@les7arts.com>.
Hi Taher,

Before going down in this, I believe there is something you need to work on first. It's related to the point 2 of my recent thread "Tests issues"? I 
copy it for you

> 2. Related with a framework recent change we no longer feed the HTML results https://ci.apache.org/projects/ofbiz/logs/trunk/
> So it's harder to check which test/s was/were impacted by the data change (only?). The error which prevents the HTML results creation, in log is
>
>      [java] Exception in thread "main" org.ofbiz.base.start.StartupException: Cannot start() org.ofbiz.testtools.TestRunContainer (Test run was 
> unsuccessful)
>      [java]     at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
>      [java]     at org.ofbiz.base.start.StartupControlPanel.startStartupLoaders(StartupControlPanel.java:270)
>      [java]     at org.ofbiz.base.start.StartupControlPanel.start(StartupControlPanel.java:107)
>      [java]     at org.ofbiz.base.start.Start.main(Start.java:84)
>      [java] Caused by: org.ofbiz.base.container.ContainerException: Test run was unsuccessful
>      [java]     at org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:193)
>      [java]     at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:237)
>      [java]     ... 3 more

I have the debugger on it, but just checked the mail so prefer to warn you. I'll tell you soon if I got more info. In the meantime better to wait (or 
help) ;)

Thanks

Jacques

Le 02/06/2016  11:17, Taher Alkhateeb a crit :
> Hey Gareth and Jacques,
>
> OK, so this means the startup design is unnecessary (making the start class
> a singleton). Instead we can simply declare the variables Config and
> ServerState as static because any new call to the startup logic using "java
> -jar ofbiz.jar" is going to launch a new JVM. This whole description at the
> top of the class is hence confusing: "This class uses a singleton pattern to
> guarantee that only one server instance is running in the VM". Of course
> only one instance is going to run in the VM because only one ServerSocket
> may be set per VM.
>
> Anyway, things are very clear now. The start sequence only executes once per
> JVM. This makes locks and all kinds of elaborate checking unnecessary. I
> will start cleaning that up!
>
> Cheers
>
> Taher Alkhateeb
>
> -----Original Message-----
> From: Gareth Carter [mailto:Gareth.Carter@stannah.co.uk]
> Sent: 02 June 2016 10:58
> To: dev@ofbiz.apache.org
> Subject: RE: Question on multiple starting ofbiz
>
> We have a server with multiple instances of ofbiz running using port offset.
> But these are completely separate java processes, separate classloaders and
> locks etc
>
> You would not even be able to start the same instance multiple times (maybe
> POS?), port numbers would be in use unless you change the port offset
>
> It could that the developer who created the code did so out of habit, ofbiz
> may work exactly the same with or without it
>
> -----Original Message-----
> From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com]
> Sent: 02 June 2016 8:38 AM
> To: dev@ofbiz.apache.org
> Subject: Re: Question on multiple starting ofbiz
>
> OOTB, because of the admin port I don't know of any ways to start OFBiz
> multiple time.
>
> The both option only allows to start the POS and the rest, but for the same
> reason only one time.
>
> It could be that this was introduced for external projects, then please
> chime in...
>
> Jacques
>
> Le 02/06/2016  08:34, Taher Alkhateeb a crit :
>> Hello Folks,
>>
>>    
>>
>> My question is the following: is OFBiz allowed to start multiple times
>> from the main method (difference tenants, different offset ports,
> whatever.)?
>>    
>>
>> The reason I ask is because the startup logic in OFBiz is made more
>> complex because it assumes multiple starts. For example:
>>
>> -          Checking if a classloader is set or not
>>
>> -          Applying locks on StartupLoaders to prevent multiple threads
> from
>> altering them
>>
>>    
>>
>> Is this code unnecessary? Should I assume that OFBiz never calls the
>> startup sequence more than once?
>>
>>    
>>
>> Regards,
>>
>>    
>>
>> Taher Alkhateeb
>>
>>    
>>
>>    
>>
>>
>
>
> To report this email as spam, please send the original message, complete
> with headers to spam@websense.com
>
>
> This email is intended only for the above addressee. It may contain
> privileged information. If you are not the addressee you must not copy,
> distribute, disclose or use any of the information in it. If you have
> received it in error, please delete it and notify the sender.
>
> Stannah Lift Holdings Ltd registered No. 686996, Stannah Management Services
> Ltd registered No. 2483693, Stannah Lift Services Ltd registered No.
> 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts Ltd
> registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.
>
> All registered offices at Watt Close, East Portway, Andover, Hampshire, SP10
> 3SD, England.
>
> All Registered in England and Wales.
>
> This message has been scanned for malware by Websense. www.websense.com
>
>
>


RE: Question on multiple starting ofbiz

Posted by Taher Alkhateeb <sl...@gmail.com>.
Hey Gareth and Jacques,

OK, so this means the startup design is unnecessary (making the start class
a singleton). Instead we can simply declare the variables Config and
ServerState as static because any new call to the startup logic using "java
-jar ofbiz.jar" is going to launch a new JVM. This whole description at the
top of the class is hence confusing: "This class uses a singleton pattern to
guarantee that only one server instance is running in the VM". Of course
only one instance is going to run in the VM because only one ServerSocket
may be set per VM.

Anyway, things are very clear now. The start sequence only executes once per
JVM. This makes locks and all kinds of elaborate checking unnecessary. I
will start cleaning that up!

Cheers

Taher Alkhateeb

-----Original Message-----
From: Gareth Carter [mailto:Gareth.Carter@stannah.co.uk] 
Sent: 02 June 2016 10:58
To: dev@ofbiz.apache.org
Subject: RE: Question on multiple starting ofbiz

We have a server with multiple instances of ofbiz running using port offset.
But these are completely separate java processes, separate classloaders and
locks etc

You would not even be able to start the same instance multiple times (maybe
POS?), port numbers would be in use unless you change the port offset

It could that the developer who created the code did so out of habit, ofbiz
may work exactly the same with or without it

-----Original Message-----
From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com]
Sent: 02 June 2016 8:38 AM
To: dev@ofbiz.apache.org
Subject: Re: Question on multiple starting ofbiz

OOTB, because of the admin port I don't know of any ways to start OFBiz
multiple time.

The both option only allows to start the POS and the rest, but for the same
reason only one time.

It could be that this was introduced for external projects, then please
chime in...

Jacques

Le 02/06/2016 à 08:34, Taher Alkhateeb a écrit :
> Hello Folks,
>
>   
>
> My question is the following: is OFBiz allowed to start multiple times 
> from the main method (difference tenants, different offset ports,
whatever.)?
>
>   
>
> The reason I ask is because the startup logic in OFBiz is made more 
> complex because it assumes multiple starts. For example:
>
> -          Checking if a classloader is set or not
>
> -          Applying locks on StartupLoaders to prevent multiple threads
from
> altering them
>
>   
>
> Is this code unnecessary? Should I assume that OFBiz never calls the 
> startup sequence more than once?
>
>   
>
> Regards,
>
>   
>
> Taher Alkhateeb
>
>   
>
>   
>
>



To report this email as spam, please send the original message, complete
with headers to spam@websense.com


This email is intended only for the above addressee. It may contain
privileged information. If you are not the addressee you must not copy,
distribute, disclose or use any of the information in it. If you have
received it in error, please delete it and notify the sender.

Stannah Lift Holdings Ltd registered No. 686996, Stannah Management Services
Ltd registered No. 2483693, Stannah Lift Services Ltd registered No.
1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts Ltd
registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.

All registered offices at Watt Close, East Portway, Andover, Hampshire, SP10
3SD, England.

All Registered in England and Wales.

This message has been scanned for malware by Websense. www.websense.com


RE: Question on multiple starting ofbiz

Posted by Gareth Carter <Ga...@stannah.co.uk>.
We have a server with multiple instances of ofbiz running using port offset. But these are completely separate java processes, separate classloaders and locks etc

You would not even be able to start the same instance multiple times (maybe POS?), port numbers would be in use unless you change the port offset

It could that the developer who created the code did so out of habit, ofbiz may work exactly the same with or without it

-----Original Message-----
From: Jacques Le Roux [mailto:jacques.le.roux@les7arts.com] 
Sent: 02 June 2016 8:38 AM
To: dev@ofbiz.apache.org
Subject: Re: Question on multiple starting ofbiz

OOTB, because of the admin port I don't know of any ways to start OFBiz multiple time.

The both option only allows to start the POS and the rest, but for the same reason only one time.

It could be that this was introduced for external projects, then please chime in...

Jacques

Le 02/06/2016 à 08:34, Taher Alkhateeb a écrit :
> Hello Folks,
>
>   
>
> My question is the following: is OFBiz allowed to start multiple times 
> from the main method (difference tenants, different offset ports, whatever.)?
>
>   
>
> The reason I ask is because the startup logic in OFBiz is made more 
> complex because it assumes multiple starts. For example:
>
> -          Checking if a classloader is set or not
>
> -          Applying locks on StartupLoaders to prevent multiple threads from
> altering them
>
>   
>
> Is this code unnecessary? Should I assume that OFBiz never calls the 
> startup sequence more than once?
>
>   
>
> Regards,
>
>   
>
> Taher Alkhateeb
>
>   
>
>   
>
>



To report this email as spam, please send the original message, complete with headers to spam@websense.com


This email is intended only for the above addressee. It may contain privileged information. If you are not the addressee you must not copy, distribute, disclose or use any of the information in it. If you have received it in error, please delete it and notify the sender.

Stannah Lift Holdings Ltd registered No. 686996, Stannah Management Services Ltd registered No. 2483693, Stannah Lift Services Ltd registered No. 1189799, Stannah Microlifts Ltd registered No. 964804, Stannah Lifts Ltd registered No. 1189836, Stannah Stairlifts Ltd registered No. 1401451.

All registered offices at Watt Close, East Portway, Andover, Hampshire, SP10 3SD, England.

All Registered in England and Wales.

This message has been scanned for malware by Websense. www.websense.com

Re: Question on multiple starting ofbiz

Posted by Jacques Le Roux <ja...@les7arts.com>.
OOTB, because of the admin port I don't know of any ways to start OFBiz multiple time.

The both option only allows to start the POS and the rest, but for the same reason only one time.

It could be that this was introduced for external projects, then please chime in...

Jacques

Le 02/06/2016  08:34, Taher Alkhateeb a crit :
> Hello Folks,
>
>   
>
> My question is the following: is OFBiz allowed to start multiple times from
> the main method (difference tenants, different offset ports, whatever.)?
>
>   
>
> The reason I ask is because the startup logic in OFBiz is made more complex
> because it assumes multiple starts. For example:
>
> -          Checking if a classloader is set or not
>
> -          Applying locks on StartupLoaders to prevent multiple threads from
> altering them
>
>   
>
> Is this code unnecessary? Should I assume that OFBiz never calls the startup
> sequence more than once?
>
>   
>
> Regards,
>
>   
>
> Taher Alkhateeb
>
>   
>
>   
>
>