Hi,

There are plans in the works for caching things such as WSDL definitions and also runtime objects like WSIFOperations, WSIFMessages, etc. for reuse. But right now these are just ideas. If you would like to do the work and contribute code, that would be great.

Thanks,
Nirmal.


"BAKHSHI Sanveer-Singh (ITG/ASG)" <[EMAIL PROTECTED]>

04/02/2003 11:46 AM
Please respond to wsif-user

       
        To:        "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
        cc:        
        Subject:        RE: Caching



Firstly, thanks Ant for the info on WSIF Providers - huge timesaver there.

>From an architectural perspective, one can not hide the fact that reading
WSDL files DOES take a fair amount of time. With the average java method
invocation taking under a second, the impact of 1.5-3 seconds just for
reading a WSDL file for one service can be enormous, especially if you're
switching to a SOA where '000s of transactions will be running in this
manner.

Can anyone help me with a possible solution for this ? How can one prevent
reading the WSDL file EVERY time the transaction is invoked ? Are there any
available caching mechanisms like Oracle's Least Recently Used Caching
mechanism for SQL statements ?

Regards

--------------------------------------------
Rick Bakhshi
Middleware Specialist
Belgacom, Brussels
[EMAIL PROTECTED]
--------------------------------------------



-----Original Message-----
From: Anthony Elder [mailto:[EMAIL PROTECTED]
Sent: 02 April 2003 11:15
To: [EMAIL PROTECTED]
Subject: re : WSIF Providers



Hi Rick, nice to hear you've written your own WSIF provider.

If you package up you code correctly WSIF should automatically make it
available to all WSIF clients . What you need to do is:

- WSIFPluggableProviders discovers providers by locating their names in
service provider files. The service provider file must be named
org.apache.wsif.spi.WSIFProvider and is must be in a directory named
META-INF/service. This directory must be in a jar file and the jar file
available in the classpath. The contents of the file is a list of the fully
quailified class name of the WSIFProvider. You can see an example of this
if you look in with the one defining the existing WSIF providers in
wsif.jar or via the cvs interface at:

http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/src/META-INF
/services/org.apache.wsif.spi.WSIFProvider

- When WSIF is initialised it will instantiate all the providers named in
the service provider files. The WSIFProvider must have a noargs
constructor. In the constructor the provider should check that all its
required resources are available, such as any required jars being available
in the classpath, and if everything is ok it should register any WSDL
extensions it uses with the addExtensionRegistry call. If required
resources are not available the provider should disable itself by setting
getBindingNameSpaceURI's to return an array of length zero (and not
registering its WSDL extensions). As all this happens every time WSIF is
initialised you should try to keep your WSIFProvider class lightweight and
any work done in constructing it to a minimum. You can see examples of this
code in the existing WSIF providers, for example:

http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/src/org/apac
he/wsif/providers/soap/apacheaxis/WSIFDynamicProvider_ApacheAxis.java

This should be all you need to do. Now doing a getPort for a port using
your binding namespace should result in the createDynamicWSIFPort being
called on your WSIFProvider class.

Have you considered making your provider available to other WSIF users?

      ...ant

Anthony Elder
[EMAIL PROTECTED]
Web Services Development
IBM UK Laboratories,  Hursley Park
(+44) 01962 818320, x248320, MP208.


"BAKHSHI Sanveer-Singh (ITG/ASG)" <[EMAIL PROTECTED]> on 01/04/2003
20:10:36

Please respond to [EMAIL PROTECTED]

To:    "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject:    re : WSIF Providers



Dears,

I have just written a WSIF custom provider for an in house api (jolt ->
tuxedo), and also the extensions for wsdl. However, I am not sure how to
customise our own application to use this. Since WSIFPluggableProviders is
only to overide the provider for an existing namespace, my assumption is
that a 'newInstance' of this new_provider would be needed in my app,
although I have not tried that yet.  But when getPort("HabPort") is called,
a "Port 'HabPort' is not available and  no alternative can be found" is
thrown, though the wsdl seems appropriate.
I have also added the following :
"WSIFServiceImpl.addExtensionRegistry(new
org.apache.wsif.wsdl.extensions.hab.HabExtensionRegistry())" but still get
the same exception.
Is there anything else I would need to add for WSIF to find this extension
?
Does the WSIFServiceImpl class need some implementing ? In debug mode, I
notice that the WSDL Definition has read the added binding but cannot
identify the type.

Could anyone possibly help me here ?


Regards

--------------------------------------------
Rick Bakhshi
Middleware Specialist
Belgacom, Brussels
[EMAIL PROTECTED]
--------------------------------------------



**** DISCLAIMER ****
"This e-mail and any attachments thereto may contain information
which is confidential and/or protected by intellectual property
rights and are intended for the sole use of the recipient(s) named above.
Any use of the information contained herein (including, but not limited to,
total or partial reproduction, communication or distribution in any form)
by persons other than the designated recipient(s) is prohibited.
If you have received this e-mail in error, please notify the sender either
by telephone or by e-mail and delete the material from any computer.
Thank you for your cooperation."




**** DISCLAIMER ****
"This e-mail and any attachments thereto may contain information
which is confidential and/or protected by intellectual property
rights and are intended for the sole use of the recipient(s) named above.
Any use of the information contained herein (including, but not limited to,
total or partial reproduction, communication or distribution in any form)
by persons other than the designated recipient(s) is prohibited.
If you have received this e-mail in error, please notify the sender either
by telephone or by e-mail and delete the material from any computer.
Thank you for your cooperation."


Reply via email to