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 » wmb8 - xsd in shared libraries

Post new topic  Reply to topic
 wmb8 - xsd in shared libraries « View previous topic :: View next topic » 
Author Message
gilc
PostPosted: Thu Aug 16, 2012 3:49 am    Post subject: wmb8 - xsd in shared libraries Reply with quote

Apprentice

Joined: 17 Mar 2011
Posts: 32

Hey,

In wmb8 the use of shared libraries seemed like a great solution for our project. Or so we thought....

We have a general xsd (let's call him ESBHeader.xsd) which contains a header for every messsage in the organization and it's located in a library called ESBCommon. Every other library (i.e BlaLib) will have a reference to ESBCommon and in its message declaretions (i.e bla.xsd) it'll use ESBHeader.xsd as so:
Code:

<import namespace="http://org.com/esb" schemaLocation="../ESBCommon/ESBHeader.xsd"/>

So far so good.

The problem is at runtime when trying to use a mapping node (for example) to set some fields in ESBHeader.xsd, we receive an error of:

Schema bla.xsd could not resolve xml schema location

Isn't one of the purposes of the libraries is to be able to share schemas freely? Are we missing something?

Thanks for the help,
~ Gil
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Aug 16, 2012 4:38 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Are you trying to deploy the shared library to the default application, and then use it from within another application?
Back to top
View user's profile Send private message
gilc
PostPosted: Thu Aug 16, 2012 4:52 am    Post subject: Reply with quote

Apprentice

Joined: 17 Mar 2011
Posts: 32

I'm not using applications at all. Both ESBCommon and BlaLib are libraries.

And I forgot to mention that both are deployed to the same execution group.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Aug 16, 2012 5:11 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

gilc wrote:
I'm not using applications at all.


The first rule of v8 is that everything is deployed to an application.

So, yes, you are using an application. It's the default application.

gilc wrote:
Both ESBCommon and BlaLib are libraries.


Is ESBCommon marked as a library reference to BlaLib? Not a project reference, a library reference.

If you deploy *just* BlaLib, does ESBCommon get deployed as well?

gilc wrote:
And I forgot to mention that both are deployed to the same execution group.

That's good news. You can't access things outside of the current application at all, so trying to cross EG boundaries is twice as impossible.
Back to top
View user's profile Send private message
gilc
PostPosted: Thu Aug 16, 2012 5:36 am    Post subject: Reply with quote

Apprentice

Joined: 17 Mar 2011
Posts: 32

I'll start from the end if you please -

Quote:

Is ESBCommon marked as a library reference to BlaLib? Not a project reference, a library reference.

If you deploy *just* BlaLib, does ESBCommon get deployed as well?


ESBCommon is a library reference to BlaLib and so when I deploy only BlaLib, ESBCommon is deployed as well.

Quote:

The first rule of v8 is that everything is deployed to an application.


I read the infocenter from start to end about the new version and its features (yes, I have a lot of time on my hands) and didn't comprehend this critical point :/ (Thank you ESL!)
As for my understanding, Libs are used to share resources and that's exactly what we needed, while applications are stand-alone solutions.
Moreover, when playing a bit with the new version, we found out that if there are 2 applications that are using the same ESBCommon library (with library reference), and there is a change in that library, not only we need to deploy the lib again, but the applications as well (and that's missing the point of all the sharing features, isn't it?)...
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Aug 16, 2012 6:26 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

gilc wrote:
I'll start from the end if you please -

Quote:

Is ESBCommon marked as a library reference to BlaLib? Not a project reference, a library reference.

If you deploy *just* BlaLib, does ESBCommon get deployed as well?


ESBCommon is a library reference to BlaLib and so when I deploy only BlaLib, ESBCommon is deployed as well.


Okay. Then I'd apply FixPack1 and see if that helps.

gilc wrote:
Quote:

The first rule of v8 is that everything is deployed to an application.


I read the infocenter from start to end about the new version and its features (yes, I have a lot of time on my hands) and didn't comprehend this critical point :/ (Thank you ESL!)
As for my understanding, Libs are used to share resources and that's exactly what we needed, while applications are stand-alone solutions.
Moreover, when playing a bit with the new version, we found out that if there are 2 applications that are using the same ESBCommon library (with library reference), and there is a change in that library, not only we need to deploy the lib again, but the applications as well (and that's missing the point of all the sharing features, isn't it?)...


Yes, this is a bit unclear. The point is that if you deploy things outside of an explicit application, they are still deployed INTO an application - it's just not an explicitly named application.

An application is two things: a Toolkit container and a Runtime container. Anything you deploy to a v8 Broker is deployed into a Runtime application container. You can choose in the Toolkit to create a named application container, and deploy that named container. If you choose NOT to create a named container in the Toolkit, you are still deploying into a Runtime application container.

This means that you can't share resources that are deployed inside a named application with resources that are outside that named application.
Back to top
View user's profile Send private message
gilc
PostPosted: Thu Aug 16, 2012 6:35 am    Post subject: Reply with quote

Apprentice

Joined: 17 Mar 2011
Posts: 32

Quote:
Okay. Then I'd apply FixPack1 and see if that helps


We are planning on installing the new fixpack next week so hopfully it'll help. I'll update this thread when and if there are news.


And thank you very much for your explaination!! It definitely cleared a few things
Back to top
View user's profile Send private message
gilc
PostPosted: Tue Aug 21, 2012 12:24 am    Post subject: Reply with quote

Apprentice

Joined: 17 Mar 2011
Posts: 32

We've applied the fixpack 8.0.0.1 and it seems to solve the problem
Back to top
View user's profile Send private message
Ualter
PostPosted: Thu Nov 07, 2013 11:49 am    Post subject: Sharing XSD through Libraries-not working on Broker 8.0.0.2 Reply with quote

Newbie

Joined: 10 Sep 2013
Posts: 4

Hi Gilc,

Did you solve this problem?

We are trying this as well, but in runtime environment is not working properly, just on design time (Toolkit).

I have a XSD call ServiceHeader.xsd that it is on a Library.

On a Application that is referencing this Library, I have a WSDL that it's trying to import this XSD, in this manner:
Code:

<xsd:import namespace="xxx/ArqIIB/v1/ServiceHeader"
          schemaLocation="../Incubadoralib/ServiceHeader.xsd"/>


However, on design time everything it's seems ok, but after the deploy, we could'nt manage to get the WSDL work properly, because the XSDs aren't being found.

That's what we have on the WSDL
Code:

<wsdl:types>
<xsd:schema>
<xsd:import namespace="xxx/ConsultarCliente/" schemaLocation="_xxx/Clientes?xsd=xsd0"/>
<xsd:import namespace="_xxx/ServiceHeader" schemaLocation="../Incubadoralib/ServiceHeader.xsd"/>
</xsd:schema>
</wsdl:types>


The both resources cannot be found.

Our Broker (runtime) is version 8.0.0.2.
If you can help us with any advice or tips, we appreciate.

Thanks,
Ujr
Back to top
View user's profile Send private message
kimbert
PostPosted: Fri Nov 08, 2013 1:08 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

This is a known problem. You need IC94463, which is included in v8.0.0.3.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
Ualter
PostPosted: Fri Nov 08, 2013 4:46 am    Post subject: Reply with quote

Newbie

Joined: 10 Sep 2013
Posts: 4

kimbert wrote:
This is a known problem. You need IC94463, which is included in v8.0.0.3.


Thank you very much Kimbert. You help us a lot.
So... for now we're going to find another way to achieve this.

Regards,
Ualter
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 » wmb8 - xsd in shared 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.