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 » Integration Bus with eXtreme scale (custom evictor)

Post new topic  Reply to topic
 Integration Bus with eXtreme scale (custom evictor) « View previous topic :: View next topic » 
Author Message
Alcedar
PostPosted: Thu Sep 18, 2014 1:09 am    Post subject: Integration Bus with eXtreme scale (custom evictor) Reply with quote

Newbie

Joined: 18 Sep 2014
Posts: 5

Hi,

I hope somebody can help me with below problem:

We use IBM Integration Bus v9.0 together with IBM WebSphere eXtreme Scale 8.6 and everything worked fine until we have decided to write a custom evictor which evicts entries from the map based on time and puts them into a message queue.

We have configured objectgrid.xml in the following way:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="URL_HERE"
       xsi:schemaLocation="URL_HERE"
       xmlns="URL_HERE">

       <objectGrids>
              <objectGrid name="Grid" txTimeout="30">

                     <backingMap name="Map2" copyMode="COPY_TO_BYTES"
                           pluginCollectionRef="Eviction" lockStrategy="PESSIMISTIC" nullValuesSupported="false" />
              </objectGrid>
       </objectGrids>

       <backingMapPluginCollections>
              <backingMapPluginCollection id="Eviction">
                     <bean id="Evictor" className="com.session.provider.evictor.TimeoutAsyncEvictor">
                     </bean>
              </backingMapPluginCollection>
       </backingMapPluginCollections>
</objectGridConfig>


However, whenever Integration Bus tries to connect to datagrid (via Configurable service), we get the following exception:

Code:
[BIPmsgs:7152]BIP7152E: The message flow failed to connect to an external WebSphere eXtreme Scale grid. A client attempted to connect to WebSphere eXtreme Scale grid 'Grid', defined by configurable service 'wxsConnection', using connection string 'localhost:2809'. This connection attempt failed with the following error: 'com.ibm.websphere.objectgrid.config.ObjectGridConfigurationException:[b] CWOBJ2416E: Plug-in com.session.provider.evictor.TimeoutAsyncEvictor could not be instantiated and is not configured. The exception is java.lang.ClassNotFoundException: com.session.provider.evictor.TimeoutAsyncEvictor.'.
[/b]

Any help will be appreciated!

Tony
Back to top
View user's profile Send private message
stoney
PostPosted: Thu Sep 18, 2014 3:07 am    Post subject: Reply with quote

Centurion

Joined: 03 Apr 2013
Posts: 140

I've not tried using a custom evictor, but I would guess that you just need to make the custom evictor classes available for use by the integration node.
You should be able to put those classes in a JAR file and add them to the shared-classes directory - see the docs for instructions:

http://www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bk58210_.htm
Back to top
View user's profile Send private message
Alcedar
PostPosted: Thu Sep 18, 2014 7:27 am    Post subject: Reply with quote

Newbie

Joined: 18 Sep 2014
Posts: 5

Thanks a lot stoney!!

That really helped and I went past that error message.

However there is another message coming now:

Code:

[BIPmsgs:7152]BIP7152E: The message flow failed to connect to an external WebSphere eXtreme Scale grid. A client attempted to connect to WebSphere eXtreme Scale grid 'Grid', defined by configurable service 'wxsConnection', using connection string 'localhost:2809'. This connection attempt failed with the following error:'java.lang.ClassCastException: com.session.provider.evictor.TimeoutAsyncEvictor incompatible with com.ibm.websphere.objectgrid.plugins.Evictor'.

Ensure that the grid is available, and that the connection parameters specified in the configurable service are correct. If the external WebSphere eXtreme Scale grid requires SSL, ensure that this execution group is correctly configured for SSL connections. : Failed to get session with grid


I think that is because there are two different class loaders for eXtreme Scale and for Integration Bus
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Sep 18, 2014 7:29 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Alcedar wrote:
I think that is because there are two different class loaders for eXtreme Scale and for Integration Bus


That's not usually what a ClassCastException means, at least in my experience.
Back to top
View user's profile Send private message
Alcedar
PostPosted: Thu Sep 18, 2014 8:00 am    Post subject: Reply with quote

Newbie

Joined: 18 Sep 2014
Posts: 5

mqjeff wrote:
Alcedar wrote:
I think that is because there are two different class loaders for eXtreme Scale and for Integration Bus


That's not usually what a ClassCastException means, at least in my experience.


I'm judging based on this information:

Quote:

If the same class file is loaded in different class loaders, the two resulting Java classes are not the same class; you wouldn't be allowed to pass instances of one to functions expecting the other. Generally, if you're seeing this kind of problem, it's because you've got multiple child classloaders that can access a jar file that's not visible to their common parent classloader. You may need to move the jar containing "someclass" to a common library directory instead of (for example) a specific webapp directory.

from here http://stackoverflow.com/questions/5352550/meaning-of-java-lang-classcastexception-someclass-incompatible-with-someclass

And this one:
http://www-01.ibm.com/support/knowledgecenter/SSEQTP_7.0.0/com.ibm.websphere.base.doc/info/aes/ae/crun_classload.html?cp=SSEQTP_7.0.0%2F1-8-6-0
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Sep 18, 2014 8:07 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Well, ok.

You can try putting the jar file with your evictor class in <IIB_install>/cachesupport/lib and restarting, to see if it gets loaded by a different classloader.

But hopefully you've already confirmed using a standalone java XS client app that your evictor is functional and working.
Back to top
View user's profile Send private message
Alcedar
PostPosted: Thu Sep 18, 2014 8:35 am    Post subject: Reply with quote

Newbie

Joined: 18 Sep 2014
Posts: 5

mqjeff wrote:
Well, ok.

You can try putting the jar file with your evictor class in <IIB_install>/cachesupport/lib and restarting, to see if it gets loaded by a different classloader.

But hopefully you've already confirmed using a standalone java XS client app that your evictor is functional and working.


Thanks a lot for your reply!

I have replaced existing <IIB_install>/cachesupport/lib/objectgrid.jar with the one provided by WXS 8.6.0.1 and restarted Integration Node.

Then I re-tested and everything works fine now!!!

Not quite sure though what could be the consequences of JAR replacing? Is it safe?


P.S.: And I have confirmed with Java XS client that Eviction works.
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 » Integration Bus with eXtreme scale (custom evictor)
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.