deploy idempiere in a cluster with tomcat 8 or glass fish 4.0

537 views
Skip to first unread message

Luis Betanzo

unread,
May 16, 2014, 10:38:15 AM5/16/14
to idem...@googlegroups.com
Hi all I been testing the product and I am seeing an amazing good things happening my first cuestion is to be able to work in a production enviroment is aidempiere ready for this or by when do you spectiong to have a production release.

My second question is how can I deploy idempiere in a cluster with tomcat 8 or glass fish 4.0, do you have any paper or link  i can read to do this or are you  going to implement a plugin that make this posible.


Thanks to any one can give me some tips of who to do this 

Luis Betanzo

Pedro Rozo

unread,
May 16, 2014, 11:07:48 AM5/16/14
to idem...@googlegroups.com
Hello Luis.

Answering your questions.

1.  Idempiere is ready for Prod, ( we are using for 2 customers at this time), and extending with plug-ins for new solutions.
2. Regarding infrastructure, Idempiere requires a OSGi  container(service & platform) ... currently, we use Apache Felix by default including admin console, tomcat container intergation and so on, performed by the core team.

But because OSGi is pretty standard, you might be able to deploy Idempeire with any other OSGi standard container (werbsphere, weblogic, and so on),,,and dependieng of your container you might be able to configure complex enviroments such as clusters for replication, performance  and so on.  If you are not familiar with advanced OSGi deployments like those, you migth need professional consultant services.

BTW: Wwe are pretty familair with Websphere, Weblogic, JBOSS and OSG environment if you need professional help handy,

Regards

Pedro Rozo.

Chuck Boecking

unread,
May 16, 2014, 1:29:47 PM5/16/14
to idem...@googlegroups.com
Luis,

When you speak of clustering, I am assuming you want the benefit of better scalability, better fault tolerance, etc... Clustering is complex because it assumes specific abilities. One example is the ability to access a single session from multiple nodes - said another way - session fault tolerance. Such abilities are dependent on the container.

Load balancing is an easier option than clustering. It is easier to setup. You get many of the benefits of clustering without some of the complexity. Here is a description of a load balanced solution:
  • You use a common session-aware load balancer. Amazon's AWS has one. HAProxy is probably the most popular. 
  • You add as many iDempiere WebUI servers as you need to the pool. 
  • You delegate one machine to be the primary services server. This machine can be either inside or outside the pool. (here is how you delegate services)
Because each server lives in isolation of the next, there are no software dependencies. In other words, there are no plugins necessary. Carlos, Heng Sin and others have already done the hard work.

Before load balancing, if your WebUI server went down, all users were out of luck. In a load balanced environment, a WebUI server going down only affects the user's whose session was on that machine. When they go to connect again, the load balance will point them to a different WebUI server. They lost their previous session; however, they can log back in and resume their business on a difference node.

The setup of HAProxy is pretty simple in my experience. You just need to be aware that deployment becomes more complicated.

The same concept is true for database pooling and PGPool2. But, that is a conversation for another day.

I hope this helps!

Regards,
Chuck Boecking

Mangalsinh Rajput

unread,
Jun 6, 2017, 4:38:13 AM6/6/17
to iDempiere
Hello Pedro Rozo,

Can you please guide me how we can deploy iDempiere in Web Logic and what are the configuration we have to do for same ?
Need to add any plugin for web logic ?
Any help highly Appreciated.

Thanks,
Mangalsinh Rajput
Sr. Consultant

Pedro Rozo

unread,
Jun 6, 2017, 11:07:26 AM6/6/17
to iDempiere
Hi .

Unfortunately with Weblogic & WebSphere it will take a while to get all the set of plugins of Idempiere running, and I will depend on specific versions ...then your request is not  that  simple  ,  my preliminary suggestion is if you are a senior consultant, and you want to do it yourself , you can start taking the list  the list of plug-ins (coming from eclipse/runtime definition after you setup the dev. environment) .. with that list of plugins .. you can export jar files, and try to deploy them there individually or as features and so on ...

However some individual config files are optimized for Jetty, (keystore, and others)  so you have to go and review some of them ...and change/adapt them accordingly for Weblogic 

As I mentioned it would be time consuming task, so if you are not able to do it on your own , we should be able to help with consulting services (you can use our web site: www.smartjsp.com  to contact us and we will be able to analyze your specific requirements and generate a quote)  

Regards ..

Pedro R.

Mangalsinh Rajput

unread,
Jun 7, 2017, 7:59:00 AM6/7/17
to iDempiere
Thank you Pedro for the reply and suggestions.

I will try with my self first and if require than surely contact you.

Thanks,
Mangalsinh Rajput
Sr. Java Consultant

nilskm

unread,
Jun 8, 2017, 5:34:43 AM6/8/17
to iDempiere
Chuck, have you tried other clustering solutions then PGPool2 ? I should need to do some postgresql clustering but haven't got started yet, PGPool2 sounds really good. 

Chuck Boecking

unread,
Jun 8, 2017, 3:12:02 PM6/8/17
to idem...@googlegroups.com
Here is the short version based on my experiments and knowledge:
  • Most iDempiere installations have not scaled to need the below. iDempiere on a single database server can scale to hundreds of concurrent users. You simply create an active recovery psql instance to handle the case of db trouble. 
  • It is generally understood that a single-write master - multi-read cluster is best or ERP type applications when it comes to clustering.
  • Postgresql 9.3+ introduced sync abilities that made PGPool not needed for clustering of this type.
  • There are generally two commit models in single-write master - multi-read cluster
    1.  Sync - where all read replicas must commit before the write master returns from a commit
    2. ASync - where the write master assumes read replicas will catch up is an acceptable amount of time.
  • Option #2 is the most common.
  • iDempiere has several use cases where it writes then immediately reads data (aging report, saving data through the UI, etc...). This concept compromises #2 because of the natural race condition. PGPool has the ability to learn when it is safe or not to read from a replica; however, the process is problematic and tedious. I believe Carlos has experimented with this feature.
  • Having said that, the vast majority of data read by iDempiere can and probably should be safely read from a read replica. 
  • I am of the belief that iDempiere's query abilities should have a flag stating if a query needs to read from master. Said another way, when iDempiere reads data from the database, it knows if it subject to the above race condition (replica safe read).
  • This is an interesting topic because it is the single limiter to a 1000+ concurrent user system. Having said that, I have not had the need for a 1000+ concurrent system yet. The iDempiere feature set does not satisfy the needs to those of say 6000 concurrent user ERP system. 
I hope this helps!


Regards,


Chuck Boecking
512.850.6068 (office and cell)
ch...@chuboe.com
ChuckBoecking.com
chuck.boecking (skype)

--
You received this message because you are subscribed to a topic in the Google Groups "iDempiere" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/idempiere/ludZNRCRyjQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to idempiere+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/idempiere/3253e331-45ba-4d3f-9729-e8b36bd5a9f8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

nilskm

unread,
Jun 9, 2017, 5:14:16 AM6/9/17
to iDempiere
Thank you for your comprehensive answer. I completely agree with you that there should be a flag with the possibility to read from slave. I'm working a little bit with prestashop which works that way. 
To unsubscribe from this group and all its topics, send an email to idempiere+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages