ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Design consideration - Application Libraries

Post new topic  Reply to topic
 Design consideration - Application Libraries « View previous topic :: View next topic » 
Author Message
IIB_Intel
PostPosted: Fri May 29, 2015 1:33 pm    Post subject: Design consideration - Application Libraries Reply with quote

Acolyte

Joined: 07 May 2015
Posts: 64

Let's say I have a library which has 100 components including few common schemas, jar files, subflows etc.

There are various applications which uses 1 or more components from this common library. Currently, from deployment standpoint, we are bundling/embedding library within the application so in an integration server each application has its own copy.

Since no one application is consuming library entirely and just using less than 5% components from it. We were thinking if we can deploy applications without embedded libraray and deploy libraray separately to the integration server.

Few assumptions:
1. There will only one version of the library at any given point in time.
2. Individual application won't need any customization to the libraray component.

Now the question is that would I be saving any memory if I deploy only one copy of the libraray to the Integration Server level and all application refer to that?
or even then also each application will create one copy for itself and put it in its execution space while in execution?

Another thing, Is there something like deploying libraries at the Integration node level? like we can put jars in shared classes folder?
Back to top
View user's profile Send private message
ganesh
PostPosted: Fri May 29, 2015 3:26 pm    Post subject: Reply with quote

Master

Joined: 18 Jul 2010
Posts: 294

In version 9 every application needs its own copy of library, in version 10 1-n applications can share a single copy of library.
Back to top
View user's profile Send private message
IIB_Intel
PostPosted: Fri May 29, 2015 7:00 pm    Post subject: Reply with quote

Acolyte

Joined: 07 May 2015
Posts: 64

Are you saying:

1. You cannot deploy library independent of an application (which wants to use it) in v9?

or

2. You can but even then each application will create its own copy?
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri May 29, 2015 10:45 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

IIB_Intel wrote:
Are you saying:

1. You cannot deploy library independent of an application (which wants to use it) in v9?

or

2. You can but even then each application will create its own copy?

1) you can but applications will not take advantage of it. Only independent resources because those get all deployed in the single default container...
2) Each application in V9 will create a copy of the library.

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
IIB_Intel
PostPosted: Mon Jun 01, 2015 7:02 am    Post subject: Reply with quote

Acolyte

Joined: 07 May 2015
Posts: 64

I tried to do this but it failed.

App1 referes lib1 (one subflow). I built App1 then manually removed compiled referenced lib1. I deployed lib1 separately in the integration server. Now when I try to dploy App1, it is not allowing.

Seems like it won't even allow you to deploy App1 without reference lib in v9.



I am looking for options to manage projects in my situation.

Few options which I have identified:
1. Split library into smaller part so the duplication is minimized.
2. Let each application create a copy of the centralized lib and delete what all components they don't need (Each App has to redo this step, whenever they want updates from the lib).

Any recommendation would be appreciated.
Thanks.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Jun 01, 2015 7:15 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

When you deploy an application, it is deployed into a private container that has no access to any other container.

When you deploy a library or a plain message flow outside of any Application (or Service) it is deployed to a default container that has no access to any other container.

If you want or need to use shared libraries that are only deployed once, you MUST use IIB V10.

In IIB v9 and earlier, YOU MUST DEPLOY all libraries and resources needed for an Application (or Service) with that Application.
Back to top
View user's profile Send private message
IIB_Intel
PostPosted: Mon Jun 01, 2015 9:04 am    Post subject: Reply with quote

Acolyte

Joined: 07 May 2015
Posts: 64

Thanks for replies..

Now coming back to my original situation - where my library has 100 components including few common schemas, jar files, subflows etc. But no one application is consuming library entirely and just using less than 5% components from it.

What are my options?

1. Split lib into multiple parts (maintenace overhead)
2. Copy lib to individual applications and remove unwanted components (No automatic updates and rework required for any update)
3. Upgrade to IIB 10 (not possible right now).. can be a future consideration.

Any other suggestion?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Jun 01, 2015 9:45 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Well,

a) I believe jar files will only be loaded as needed, so that's much less of a consideration.

b) You can also deploy them to be loaded by the shared classloader, or even better by a JavaCompute node specific (or resused by any JCN in an application) classloader.

c) If each application is really only using 5% of the library's function, then perhaps the library isn't nearly as common as it looked at design time.

d) you could do something slightly dumb like deploy the library in a container of it's own and implement a rest or MQ interface to it's functions.

e) Get a different job where they have more reasonable architects or v10...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Design consideration - Application Libraries
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.