You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(8) |
Nov
|
Dec
(21) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(22) |
Feb
(41) |
Mar
(100) |
Apr
(113) |
May
(70) |
Jun
(89) |
Jul
(79) |
Aug
(17) |
Sep
(16) |
Oct
(9) |
Nov
(7) |
Dec
(22) |
| 2004 |
Jan
(42) |
Feb
(2) |
Mar
(20) |
Apr
(35) |
May
(18) |
Jun
(14) |
Jul
(12) |
Aug
(3) |
Sep
(5) |
Oct
(3) |
Nov
|
Dec
(1) |
| 2005 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(3) |
Jun
(9) |
Jul
(18) |
Aug
(10) |
Sep
(12) |
Oct
(4) |
Nov
(4) |
Dec
(9) |
| 2006 |
Jan
(10) |
Feb
(2) |
Mar
(3) |
Apr
(3) |
May
(4) |
Jun
(9) |
Jul
(1) |
Aug
(1) |
Sep
(10) |
Oct
(29) |
Nov
(27) |
Dec
(14) |
| 2007 |
Jan
(9) |
Feb
(23) |
Mar
(3) |
Apr
(9) |
May
(21) |
Jun
(24) |
Jul
(21) |
Aug
(22) |
Sep
(11) |
Oct
(5) |
Nov
(3) |
Dec
(4) |
| 2008 |
Jan
(2) |
Feb
(5) |
Mar
(3) |
Apr
(22) |
May
(18) |
Jun
(14) |
Jul
(27) |
Aug
(20) |
Sep
(16) |
Oct
(17) |
Nov
(26) |
Dec
(48) |
| 2009 |
Jan
(37) |
Feb
(14) |
Mar
(39) |
Apr
(66) |
May
(140) |
Jun
(127) |
Jul
(78) |
Aug
(26) |
Sep
(24) |
Oct
(34) |
Nov
(10) |
Dec
(20) |
| 2010 |
Jan
(6) |
Feb
(7) |
Mar
(51) |
Apr
(49) |
May
(71) |
Jun
(57) |
Jul
(42) |
Aug
(53) |
Sep
(21) |
Oct
(4) |
Nov
|
Dec
(1) |
| 2011 |
Jan
|
Feb
(1) |
Mar
(4) |
Apr
(2) |
May
(3) |
Jun
|
Jul
(2) |
Aug
(5) |
Sep
(1) |
Oct
(2) |
Nov
(2) |
Dec
|
| 2012 |
Jan
(2) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
(2) |
Apr
(1) |
May
(3) |
Jun
(1) |
Jul
|
Aug
(2) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
| 2014 |
Jan
(2) |
Feb
(2) |
Mar
|
Apr
|
May
(4) |
Jun
(2) |
Jul
(4) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(2) |
Dec
(6) |
| 2015 |
Jan
(1) |
Feb
(4) |
Mar
(11) |
Apr
(15) |
May
(12) |
Jun
(13) |
Jul
(7) |
Aug
(7) |
Sep
(5) |
Oct
(3) |
Nov
(5) |
Dec
(15) |
| 2016 |
Jan
(8) |
Feb
(1) |
Mar
(3) |
Apr
(1) |
May
(4) |
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
| 2017 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
|
May
(1) |
Jun
(6) |
Jul
(15) |
Aug
|
Sep
(1) |
Oct
(3) |
Nov
(3) |
Dec
(7) |
| 2018 |
Jan
(6) |
Feb
(8) |
Mar
(12) |
Apr
(6) |
May
(5) |
Jun
(3) |
Jul
(4) |
Aug
(6) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(2) |
| 2019 |
Jan
(5) |
Feb
(5) |
Mar
|
Apr
|
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(3) |
Dec
|
| 2021 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
| 2022 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(29) |
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
(4) |
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Ng C. Y. [Cyng] <cy...@cs...> - 2003-02-28 08:37:48
|
Hi Gait,
> <!-- my comment
> -->
> Basically, the boundary checks need to be changed to include comparison
> against the boundary string, see diff output below.
Thanks a lot! Patched in the current CVS source tree and also
the branch of 0.9.3.0.
Regards,
CY
----------------------------------------------------------------------------
Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/
Technology Officer,
Centre for E-Commerce Infrastructure Development,
The University of Hong Kong
----------------------------------------------------------------------------
|
|
From: Gait B. <gai...@ti...> - 2003-02-28 07:33:35
|
Hi team,
while testing in Europe, we ran into a problem with certain messages.
We tracked it down to the MessageServer.java, function =
getMessageFromFile.
It's too relaxing on the boundary strings, only checking for the =
delimiter, thus misinterpreting certain content, e.g.
<!-- my comment
-->
Basically, the boundary checks need to be changed to include comparison =
against the boundary string, see diff output below.=20
diff -r1.108 MessageServer.java
3175c3175
< !(s.startsWith(Constants.MIME_BOUNDARY_PREFIX))) {
---
> !(s.startsWith(Constants.MIME_BOUNDARY_PREFIX + boundary))) {
3211c3211
< while (!s.endsWith(Constants.MIME_BOUNDARY_PREFIX)) {
---
> while (!s.equals(Constants.MIME_BOUNDARY_PREFIX + boundary + =
Constants.MIME_BOUNDARY_PREFIX)) {
3249c3249
< !(s.startsWith(Constants.MIME_BOUNDARY_PREFIX))) {
---
> !(s.startsWith(Constants.MIME_BOUNDARY_PREFIX + boundary))) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gait Boxman
Manager Advanced Technology & Standards
TIE Product Development BV
Amsterdam, The Netherlands
Tel: +31 20 658 9091 Fax: +31 20 658 9945
E-mail: gai...@ti... WWW: www.TIEglobal.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
From: Gait B. <gai...@ti...> - 2003-02-27 12:24:06
|
Hi, we're interop testing right now in Europe, and found that there may be a = problem with the synchronous replies for errors and acks. AFAICS, the = responseMessage is sent back sync in MessageServiceHandler for any type = of response. This conflicts with the use of ErrorURI etc. It would be = more useful to at least allow async responses unless the address can not = be resolved from the incoming message. Not everyone supports SyncMode, = and it's a possible issue for Mail as well. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Gait Boxman Manager Advanced Technology & Standards TIE Product Development BV Amsterdam, The Netherlands Tel: +31 20 658 9091 Fax: +31 20 658 9945 E-mail: gai...@ti... WWW: www.TIEglobal.com ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
From: Ng C. Y. [Cyng] <cy...@cs...> - 2003-02-27 01:42:56
|
Hi Gait,
> we just discovered an error in MessageHeader.java. Only the first
> partyId in From and To is loaded from the XML when reading back from the
> SOAP message. Since we used the same code for verification, we didn't
> notice until know :-)
Thanks a lot! Patched in the current CVS source tree and also
the branch of 0.9.3.0.
Regards,
CY
----------------------------------------------------------------------------
Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/
Technology Officer,
Centre for E-Commerce Infrastructure Development,
The University of Hong Kong
----------------------------------------------------------------------------
|
|
From: Gait B. <gai...@ti...> - 2003-02-26 20:08:42
|
Hi,
we just discovered an error in MessageHeader.java. Only the first =
partyId in From and To is loaded from the XML when reading back from the =
SOAP message. Since we used the same code for verification, we didn't =
notice until know :-)
Here's the diff to fix it:
diff -r1.7 MessageHeader.java
462,466c462,468
< ExtensionElement partyId =3D
< new ExtensionElementImpl(soapEnvelope, (SOAPElement)
< partyIds.next());
< fromPartyIds.add(new PartyId(partyId.getValue(),
< partyId.getAttributeValue(ATTRIBUTE_TYPE)));
---
> while (partyIds.hasNext()) {
> ExtensionElement partyId =3D
> new ExtensionElementImpl(soapEnvelope, (SOAPElement)
> partyIds.next());
> fromPartyIds.add(new PartyId(partyId.getValue(),
> partyId.getAttributeValue(ATTRIBUTE_TYPE)));
> }
498,502c500,506
< ExtensionElement partyId =3D
< new ExtensionElementImpl(soapEnvelope, (SOAPElement)
< partyIds.next());
< toPartyIds.add(new PartyId(partyId.getValue(),
< partyId.getAttributeValue(ATTRIBUTE_TYPE)));
---
> while (partyIds.hasNext()) {
> ExtensionElement partyId =3D
> new ExtensionElementImpl(soapEnvelope, (SOAPElement)
> partyIds.next());
> toPartyIds.add(new PartyId(partyId.getValue(),
> partyId.getAttributeValue(ATTRIBUTE_TYPE)));
> }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gait Boxman
Manager Advanced Technology & Standards
TIE Product Development BV
Amsterdam, The Netherlands
Tel: +31 20 658 9091 Fax: +31 20 658 9945
E-mail: gai...@ti... WWW: www.TIEglobal.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
From: Patrick Y. <kc...@ce...> - 2003-02-25 03:11:11
|
MSH client: sending messagesHi Peter, We got your point. However, currently we don't have another way for = client-Hermes communication other than Java. Actually, to support = non-Java client is already on our TODO list. We plan to add Web Service = interface on Hermes (maybe as an external plug-in) for handling client = requests. In this way, we can configure Hermes as a Web Service <-> = ebXML gateway, to bridge between internal processes of a company and = B2Bi between the company and its trade partner. This picture is big, and = we target to work it out in a step-by-step manner. In the meantime, we suggest you to use a loosely-coupled approach to = facilitate non-Java client/Hermes integration: 1. Non-Java client put the message to be send in a folder 2. Write a generic Java program (as Hermes client) and poll for that = folder. Once it successfully polls a message, it can send it out using = Hermes Java API. 3. Use similar approach for handling incoming messages. Thanks for your suggestion. Cheers, -Patrick ----- Original Message -----=20 From: Mayne, Peter=20 To: ebx...@li...=20 Sent: Thursday, February 20, 2003 10:33 AM Subject: [ebxmlms-develop] MSH client: sending messages When a message is sent to Hermes using Request.send() (as in the = LoopBack client), the message is sent by serialising the Java = SOAPMessage object over an HTTP connection. This is fine for a Java client, but not for a non-Java client (for = example, .NET).=20 If we want to treat Hermes as a black box, there's no problem for = incoming messages, because Hermes can be configured to forward them as = SOAP messages to an HTTP server, which may be ASP.NET. However, for = generating messages, it seems that a Java client must be used, because = of the serialisation. Is there a non-Java-dependent way of sending SOAP/ebXML messages into = Hermes?=20 Thanks.=20 PJDM=20 --=20 Peter Mayne=20 Technology Consultant=20 Spherion Technology Solutions=20 Level 1, 243 Northbourne Avenue, Lyneham, ACT, 2602=20 T: 61 2 62689727 F: 61 2 62689777=20 The information contained in this email and any attachments to it: (a) may be confidential and if you are not the intended recipient, any = interference with,=20 use, disclosure or copying of this material is unauthorised and = prohibited; and (b) may contain personal information of the recipient and/or the sender = as defined=20 under the Privacy Act 1988 (Cth). Consent is hereby given by the = recipient(s) to=20 collect, hold and use such information and any personal information = contained in a=20 response to this email, for any reasonable purpose in the ordinary = course of=20 Spherion's=20 business, including forwarding this email internally or disclosing it to = a third party. All=20 personal information collected by Spherion will be handled in accordance = with=20 Spherion's Privacy Policy. If you have received this email in error, = please notify the=20 sender and delete it. (c) you agree not to employ or arrange employment for any candidate(s) = supplied in=20 this email and any attachments without first entering into a contractual = agreement with=20 Spherion. You further agree not to divulge any information contained in = this document=20 to any person(s) or entities without the express permission of Spherion. |
|
From: Mayne, P. <Pet...@ap...> - 2003-02-20 02:22:42
|
When a message is sent to Hermes using Request.send() (as in the LoopBack client), the message is sent by serialising the Java SOAPMessage object over an HTTP connection. This is fine for a Java client, but not for a non-Java client (for example, .NET). If we want to treat Hermes as a black box, there's no problem for incoming messages, because Hermes can be configured to forward them as SOAP messages to an HTTP server, which may be ASP.NET. However, for generating messages, it seems that a Java client must be used, because of the serialisation. Is there a non-Java-dependent way of sending SOAP/ebXML messages into Hermes? Thanks. PJDM -- Peter Mayne Technology Consultant Spherion Technology Solutions Level 1, 243 Northbourne Avenue, Lyneham, ACT, 2602 T: 61 2 62689727 F: 61 2 62689777 The information contained in this email and any attachments to it: (a) may be confidential and if you are not the intended recipient, any interference with, use, disclosure or copying of this material is unauthorised and prohibited; and (b) may contain personal information of the recipient and/or the sender as defined under the Privacy Act 1988 (Cth). Consent is hereby given by the recipient(s) to collect, hold and use such information and any personal information contained in a response to this email, for any reasonable purpose in the ordinary course of Spherion's business, including forwarding this email internally or disclosing it to a third party. All personal information collected by Spherion will be handled in accordance with Spherion's Privacy Policy. If you have received this email in error, please notify the sender and delete it. (c) you agree not to employ or arrange employment for any candidate(s) supplied in this email and any attachments without first entering into a contractual agreement with Spherion. You further agree not to divulge any information contained in this document to any person(s) or entities without the express permission of Spherion. |
|
From: Jason v. Z. <ja...@ze...> - 2003-02-18 04:39:46
|
On Mon, 2003-02-17 at 20:52, Patrick Yee wrote: > Hi Jason, > > We have tried to use Castor against the CPPA XSD files also. It is not an > easy task and we cannot 100% master it. I just got everything to compile with a little hackery. I'll start writing some tests but it looks like it will work. There is a canonicalization tool for dom4j that I just found that will help in finding the intersections of two CPPs to make a CPA for two trading partners. I still haven't found a way a decent way to take the intersection of two documents but I'll find something. Probably use Jaxen and I work with the author of Jaxen :-) > It would be good if some more people > can join their forces and collaborate. However, I suggest this should be by > a independent project other than ebxmlms. I mean, ebxmlms should be one of > the users of CPPA library. Thus, we may want to make the CPPA library > available to other "users" as well. What do you think? Sounds good. I figured this would be very useful those using Hermes. I'll keep plugging away. Maybe this could be useful in the larger freebxml project? I was going to use this little tool as the initiator between two sides trying to trade via Hermes. Anyway I'll see if I can even get it to work first :-) It compiles but that doesn't mean anything without tests. > Regards, -Patrick > > ----- Original Message ----- > From: "Jason van Zyl" <ja...@ze...> > To: <ebx...@li...> > Sent: Tuesday, February 18, 2003 4:37 AM > Subject: [ebxmlms-develop] CPP/A Implementation > > > > Hi, > > > > I was wondering if anyone has taken a crack at implementing CPP/A? I've > > just started using the XSD files provided by OASIS and using Castor to > > try and generate the source files. > > > > I would like to donate it to this project when I'm done, if anyone has > > tried this or wants to collaborate please let me know. I've only tried > > with Castor for about 20 minutes but unsuccessful thus far. > > > > I also noticed the registry project, how far along is that? > > > > -- > > jvz. > > > > Jason van Zyl > > ja...@ze... > > http://tambora.zenplex.org > > > > In short, man creates for himself a new religion of a rational > > and technical order to justify his work and to be justified in it. > > > > -- Jacques Ellul, The Technological Society > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > ebxmlms-develop mailing list > > ebx...@li... > > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > ebxmlms-develop mailing list > ebx...@li... > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop -- jvz. Jason van Zyl ja...@ze... http://tambora.zenplex.org In short, man creates for himself a new religion of a rational and technical order to justify his work and to be justified in it. -- Jacques Ellul, The Technological Society |
|
From: Patrick Y. <kc...@ce...> - 2003-02-18 01:52:43
|
Hi Jason, We have tried to use Castor against the CPPA XSD files also. It is not an easy task and we cannot 100% master it. It would be good if some more people can join their forces and collaborate. However, I suggest this should be by a independent project other than ebxmlms. I mean, ebxmlms should be one of the users of CPPA library. Thus, we may want to make the CPPA library available to other "users" as well. What do you think? Regards, -Patrick ----- Original Message ----- From: "Jason van Zyl" <ja...@ze...> To: <ebx...@li...> Sent: Tuesday, February 18, 2003 4:37 AM Subject: [ebxmlms-develop] CPP/A Implementation > Hi, > > I was wondering if anyone has taken a crack at implementing CPP/A? I've > just started using the XSD files provided by OASIS and using Castor to > try and generate the source files. > > I would like to donate it to this project when I'm done, if anyone has > tried this or wants to collaborate please let me know. I've only tried > with Castor for about 20 minutes but unsuccessful thus far. > > I also noticed the registry project, how far along is that? > > -- > jvz. > > Jason van Zyl > ja...@ze... > http://tambora.zenplex.org > > In short, man creates for himself a new religion of a rational > and technical order to justify his work and to be justified in it. > > -- Jacques Ellul, The Technological Society > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > ebxmlms-develop mailing list > ebx...@li... > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop > |
|
From: Mayne, P. <Pet...@ap...> - 2003-02-17 22:40:24
|
I'm using the full version. I'll give the LE version a try when I get time.
PJDM
--
Peter Mayne
Technology Consultant
Spherion Technology Solutions
Level 1, 243 Northbourne Avenue, Lyneham, ACT, 2602
T: 61 2 62689727 F: 61 2 62689777
> -----Original Message-----
> From: Ng Chi Yuen [Cyng] [mailto:cy...@cs...]
> Sent: Tuesday, 18 February 2003 12:15 AM
> To: 'ebx...@li...'
> Subject: RE: [ebxmlms-develop] Hermes 0.9.3.0 with Tomcat
> 4.1.18 fails to start
>
>
> Hello,
>
> > > For Tomcat 4.1.x, you have to delete the servlet.jar in
> > > WEB-INF/lib/ of your webapps to avoid conflict with the
> servlet.jar
> > > provided by Tomcat in common/lib/.
> >
> > I already did that. The problem still occurs.
>
> Are you using Tomcat 4.1.18 LE version or full version? I am
> also using 4.1.8 LE and j2sdk-1.4.1_01-b01 under Windows 2000 with no
> problem. In LE version, there are fewer libraries bundled in
> ${TOMCAT_HOME}/common/lib. servlet.jar is there with NO mail.jar,
> activation.jar, etc. Also, there is no xerces libraries in
> common/endorsed.
>
> Regards,
> CY
>
> --------------------------------------------------------------
> --------------
> Ng Chi Yuen, CY. cy...@ce...
> http://www.cecid.hku.hk/
> Technology Officer,
> Centre for
> E-Commerce Infrastructure Development,
> The University of Hong Kong
> --------------------------------------------------------------
> --------------
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> ebxmlms-develop mailing list
> ebx...@li...
> https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
>
The information contained in this email and any attachments to it:
(a) may be confidential and if you are not the intended recipient, any interference with,
use, disclosure or copying of this material is unauthorised and prohibited; and
(b) may contain personal information of the recipient and/or the sender as defined
under the Privacy Act 1988 (Cth). Consent is hereby given by the recipient(s) to
collect, hold and use such information and any personal information contained in a
response to this email, for any reasonable purpose in the ordinary course of
Spherion's
business, including forwarding this email internally or disclosing it to a third party. All
personal information collected by Spherion will be handled in accordance with
Spherion's Privacy Policy. If you have received this email in error, please notify the
sender and delete it.
(c) you agree not to employ or arrange employment for any candidate(s) supplied in
this email and any attachments without first entering into a contractual agreement with
Spherion. You further agree not to divulge any information contained in this document
to any person(s) or entities without the express permission of Spherion.
|
|
From: Jason v. Z. <ja...@ze...> - 2003-02-17 20:37:47
|
Hi, I was wondering if anyone has taken a crack at implementing CPP/A? I've just started using the XSD files provided by OASIS and using Castor to try and generate the source files. I would like to donate it to this project when I'm done, if anyone has tried this or wants to collaborate please let me know. I've only tried with Castor for about 20 minutes but unsuccessful thus far. I also noticed the registry project, how far along is that? -- jvz. Jason van Zyl ja...@ze... http://tambora.zenplex.org In short, man creates for himself a new religion of a rational and technical order to justify his work and to be justified in it. -- Jacques Ellul, The Technological Society |
|
From: Ng C. Y. [Cyng] <cy...@cs...> - 2003-02-17 13:15:23
|
Hello,
> > For Tomcat 4.1.x, you have to delete the servlet.jar in
> > WEB-INF/lib/ of your webapps to avoid conflict with the servlet.jar
> > provided by Tomcat in common/lib/.
>
> I already did that. The problem still occurs.
Are you using Tomcat 4.1.18 LE version or full version? I am
also using 4.1.8 LE and j2sdk-1.4.1_01-b01 under Windows 2000 with no
problem. In LE version, there are fewer libraries bundled in
${TOMCAT_HOME}/common/lib. servlet.jar is there with NO mail.jar,
activation.jar, etc. Also, there is no xerces libraries in
common/endorsed.
Regards,
CY
----------------------------------------------------------------------------
Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/
Technology Officer,
Centre for E-Commerce Infrastructure Development,
The University of Hong Kong
----------------------------------------------------------------------------
|
|
From: Mayne, P. <Pet...@ap...> - 2003-02-17 01:53:05
|
> > However, attempting to start Hermes 0.9.3.0 with Tomcat > 4.1.18 (on Windows > > XP SP1 with Sun JDK 1.4.1_01-b01) gives the error: > > 2003-02-17 09:42:26 StandardContext[/msh]: Error > configuring application > > listener of class > > hk.hku.cecid.phoenix.message.handler.MSHServletContextListener > > java.lang.VerifyError: Cannot inherit from final class > > at java.lang.ClassLoader.defineClass0(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java:502) > > ........ > > For Tomcat 4.1.x, you have to delete the servlet.jar in > WEB-INF/lib/ of your webapps to avoid conflict with the servlet.jar > provided by Tomcat in common/lib/. > > Regards, > CY I already did that. The problem still occurs. PJDM -- Peter Mayne Technology Consultant Spherion Technology Solutions Level 1, 243 Northbourne Avenue, Lyneham, ACT, 2602 T: 61 2 62689727 F: 61 2 62689777 The information contained in this email and any attachments to it: (a) may be confidential and if you are not the intended recipient, any interference with, use, disclosure or copying of this material is unauthorised and prohibited; and (b) may contain personal information of the recipient and/or the sender as defined under the Privacy Act 1988 (Cth). Consent is hereby given by the recipient(s) to collect, hold and use such information and any personal information contained in a response to this email, for any reasonable purpose in the ordinary course of Spherion's business, including forwarding this email internally or disclosing it to a third party. All personal information collected by Spherion will be handled in accordance with Spherion's Privacy Policy. If you have received this email in error, please notify the sender and delete it. (c) you agree not to employ or arrange employment for any candidate(s) supplied in this email and any attachments without first entering into a contractual agreement with Spherion. You further agree not to divulge any information contained in this document to any person(s) or entities without the express permission of Spherion. |
|
From: Ng C. Y. [Cyng] <cy...@cs...> - 2003-02-17 01:28:50
|
Hello, > <problem item="1"> > In the com.sun.xml.messaging.jaxm.ebxml.EbXMLMessageImpl class, the > namespace > > NS_URI = "http://www.ebxml.org/namespaces/messageHeader"; > > is being used, and therefore none of the ebXML tags are found, because the > namespaces don't match. If I change this to > > NS_URI = > "http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; > > in Sun's EbXMLMessageImpl.java, the ebXML tags are found and parsed. Why > would Sun's code be using the www.ebxml.org namespace? Is it from an older > version of the specification? > </problem> EbXMLMessageImpl provided in JAXM is quite preliminary and has not been updated for sometimes. I don't know if this class is released as a prototype or demonstation only. Anyway, the eb: namespace is still ebMS 1.0 obviously. > <problem item="2"> > Also in the com.sun.xml.messaging.jaxm.ebxml.EbXMLMessageImpl class, the > private timeStamp field is declared as long, and the timestamp is parsed as > > this.timeStamp = Long.parseLong(elem.getValue()); > > Since the timestamp in the msh-header-2_0.xsd schema is an ISO8601 string > (<element name="Timestamp" type="dateTime"/>), rather than a long, this > throws an exception. This code must be changed to parse an ISO8601 string. > </problem> Yes, we do our own parsing and validity check in Hermes in order to be compliant with the XML Schema and ebMS Specification. long is obviously not the choice. > Should these problems be reported to Sun as bugs? Yes, you may consider to do so. Regards, CY ---------------------------------------------------------------------------- Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/ Technology Officer, Centre for E-Commerce Infrastructure Development, The University of Hong Kong ---------------------------------------------------------------------------- |
|
From: Ng C. Y. [Cyng] <cy...@cs...> - 2003-02-17 01:19:18
|
Hello,
> However, attempting to start Hermes 0.9.3.0 with Tomcat 4.1.18 (on Windows
> XP SP1 with Sun JDK 1.4.1_01-b01) gives the error:
> 2003-02-17 09:42:26 StandardContext[/msh]: Error configuring application
> listener of class
> hk.hku.cecid.phoenix.message.handler.MSHServletContextListener
> java.lang.VerifyError: Cannot inherit from final class
> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
> ........
For Tomcat 4.1.x, you have to delete the servlet.jar in
WEB-INF/lib/ of your webapps to avoid conflict with the servlet.jar
provided by Tomcat in common/lib/.
Regards,
CY
----------------------------------------------------------------------------
Ng Chi Yuen, CY. cy...@ce... http://www.cecid.hku.hk/
Technology Officer,
Centre for E-Commerce Infrastructure Development,
The University of Hong Kong
----------------------------------------------------------------------------
|
|
From: Mayne, P. <Pet...@ap...> - 2003-02-17 00:56:29
|
I have Hermes configured so incoming messages are sent to a back-end HTTP server. These messages appear to be ebXML messages. So I'm using Sun's JAXM classes to read them in a JAXMServlet. However, although the SOAP message can be read successfully, the ebXML within the SOAP message cannot. After wondering through the JAXM source code, I found two possible problems. <problem item="1"> In the com.sun.xml.messaging.jaxm.ebxml.EbXMLMessageImpl class, the namespace NS_URI = "http://www.ebxml.org/namespaces/messageHeader"; is being used, and therefore none of the ebXML tags are found, because the namespaces don't match. If I change this to NS_URI = "http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"; in Sun's EbXMLMessageImpl.java, the ebXML tags are found and parsed. Why would Sun's code be using the www.ebxml.org namespace? Is it from an older version of the specification? </problem> <problem item="2"> Also in the com.sun.xml.messaging.jaxm.ebxml.EbXMLMessageImpl class, the private timeStamp field is declared as long, and the timestamp is parsed as this.timeStamp = Long.parseLong(elem.getValue()); Since the timestamp in the msh-header-2_0.xsd schema is an ISO8601 string (<element name="Timestamp" type="dateTime"/>), rather than a long, this throws an exception. This code must be changed to parse an ISO8601 string. </problem> Is my understanding of these problems correct, or am I missing something? Should these problems be reported to Sun as bugs? Thanks. PJDM -- Peter Mayne Technology Consultant Spherion Technology Solutions Level 1, 243 Northbourne Avenue, Lyneham, ACT, 2602 T: 61 2 62689727 F: 61 2 62689777 The information contained in this email and any attachments to it: (a) may be confidential and if you are not the intended recipient, any interference with, use, disclosure or copying of this material is unauthorised and prohibited; and (b) may contain personal information of the recipient and/or the sender as defined under the Privacy Act 1988 (Cth). Consent is hereby given by the recipient(s) to collect, hold and use such information and any personal information contained in a response to this email, for any reasonable purpose in the ordinary course of Spherion's business, including forwarding this email internally or disclosing it to a third party. All personal information collected by Spherion will be handled in accordance with Spherion's Privacy Policy. If you have received this email in error, please notify the sender and delete it. (c) you agree not to employ or arrange employment for any candidate(s) supplied in this email and any attachments without first entering into a contractual agreement with Spherion. You further agree not to divulge any information contained in this document to any person(s) or entities without the express permission of Spherion. |
|
From: Mayne, P. <Pet...@ap...> - 2003-02-16 23:30:05
|
I've successfully been running Hermes 0.9.2.0 with Tomcat 4.1.18. However, attempting to start Hermes 0.9.3.0 with Tomcat 4.1.18 (on Windows XP SP1 with Sun JDK 1.4.1_01-b01) gives the error: 2003-02-17 09:42:26 StandardContext[/msh]: Error configuring application listener of class hk.hku.cecid.phoenix.message.handler.MSHServletContextListener java.lang.VerifyError: Cannot inherit from final class at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:502) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLo ader.java:1664) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.jav a:953) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav a:1394) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav a:1274) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.createContentDispatcher(Unkn own Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.<init>(XMLDocumentFrag mentScannerImpl.java:249) at org.apache.xerces.impl.XMLDocumentScannerImpl.<init>(XMLDocumentScannerImpl. java:245) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.<init>(Unknown Source) at org.apache.xerces.parsers.IntegratedParserConfiguration.createDocumentScanne r(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.<init>(DTDConfiguration.java:367) at org.apache.xerces.parsers.StandardParserConfiguration.<init>(StandardParserC onfiguration.java:198) at org.apache.xerces.parsers.IntegratedParserConfiguration.<init>(Unknown Source) at org.apache.xerces.parsers.IntegratedParserConfiguration.<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces sorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc torAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at java.lang.Class.newInstance0(Class.java:306) at java.lang.Class.newInstance(Class.java:259) at org.apache.xerces.util.ObjectFactory.newInstance(ObjectFactory.java:266) at org.apache.xerces.util.ObjectFactory.findJarServiceProvider(ObjectFactory.ja va:360) at org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:185) at org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:120) at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:140) at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:125) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces sorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc torAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at java.lang.Class.newInstance0(Class.java:306) at java.lang.Class.newInstance(Class.java:259) at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:79) at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:231) at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:2 24) at org.jdom.input.SAXBuilder.createParser(SAXBuilder.java:477) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:335) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:707) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:689) at hk.hku.cecid.phoenix.common.util.XMLProperty.<init>(XMLProperty.java:122) at hk.hku.cecid.phoenix.common.util.Property.loadFromFullPath(Property.java:396 ) at hk.hku.cecid.phoenix.common.util.Property.load(Property.java:322) at hk.hku.cecid.phoenix.message.handler.MSHServletContextListener.<clinit>(Unkn own Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces sorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc torAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:274) at java.lang.Class.newInstance0(Class.java:306) at java.lang.Class.newInstance(Class.java:259) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java: 3237) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3598) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:8 21) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j ava:257) at org.apache.catalina.core.StandardHost.install(StandardHost.java:772) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:502) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:410) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor t.java:166) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196) at org.apache.catalina.core.StandardHost.start(StandardHost.java:738) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347) at org.apache.catalina.core.StandardService.start(StandardService.java:497) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2189) at org.apache.catalina.startup.Catalina.start(Catalina.java:512) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) 2003-02-17 09:42:26 StandardContext[/msh]: Skipped installing application listeners due to previous error(s) 2003-02-17 09:42:26 StandardContext[/msh]: Context startup failed due to previous errors I've put the Hermes xalan.jar in $JAVA_HOME/jre/lib/endorsed, and tried with and without jaxm-api.jar and saaj-api.jar in $CATALINA_HOME/common/lib, and get the same result each time. Has Hermes 0.9.3.0 been tested with Tomcat 4.1.18? (It seems to work with Tomcat 4.0.6.) (Also, the sample LoopBack program uses party ids that are not legal URIs and don't have types. This was accepted in Hermes 0.9.2.0, but 0.9.3.0 returns a "Party ID without a type attribute must be a URI" error.) Thanks. PJDM -- Peter Mayne Technology Consultant Spherion Technology Solutions Level 1, 243 Northbourne Avenue, Lyneham, ACT, 2602 T: 61 2 62689727 F: 61 2 62689777 The information contained in this email and any attachments to it: (a) may be confidential and if you are not the intended recipient, any interference with, use, disclosure or copying of this material is unauthorised and prohibited; and (b) may contain personal information of the recipient and/or the sender as defined under the Privacy Act 1988 (Cth). Consent is hereby given by the recipient(s) to collect, hold and use such information and any personal information contained in a response to this email, for any reasonable purpose in the ordinary course of Spherion's business, including forwarding this email internally or disclosing it to a third party. All personal information collected by Spherion will be handled in accordance with Spherion's Privacy Policy. If you have received this email in error, please notify the sender and delete it. (c) you agree not to employ or arrange employment for any candidate(s) supplied in this email and any attachments without first entering into a contractual agreement with Spherion. You further agree not to divulge any information contained in this document to any person(s) or entities without the express permission of Spherion. |
|
From: Patrick Y. <kc...@ce...> - 2003-02-12 03:57:03
|
Dear all, We are pleased to announce a new stable release of Hermes today. You can = download the latest release either from our project homepage on = SourceForge (http://sourceforge.net/projects/ebxmlms), or from = freebXML.org (http://www.freebxml.org). Thanks a lot for your support. For your information, here is the release = note of this release: Version 0.9.3.0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Configuration: - Splitted the property file into three. msh.properties.xml will be for = Hermes server, msh_client.properties.xml will be for MSH stub and=20 monitor.properties.xml is for Monitor. - Bug fixed for wrong property file entry being read for rolling log = file. Operation: - Enhanced exception support. Now exception would be thrown if any SOAP = header that has the mustUnderstand flag equals to "1", but cannot be = processed. - Modified DiagTool to create dump directories automatically. - Log the MSH halt and resume time to MSHLog table. - Added "GetIsHalted()" function to check if the MSH has been halted. = Monitor has been updated to demonstrate its usage. - Added unregistration of application context. However, the = unregistration will=20 fail when there is pending message to be sent or to be received. - If the application context of the incoming message cannot be = recognized, now=20 it will send an error message back to the originating MSH.=20 - Added a new class Utility for common methods called by server and = clients. - Modified to suspend the mail polling thread also when the MSH is = suspended. - Fixed the bug that the starting time of archive / backup operations = cannot be earlier than year 2001. - After a pending message is marked as "deleted", it was possible that = the same message be returned in the subsequent getPendingMessages() call since = the sending thread is not immediately shut down but it needs to wait till = the next retry time. It is now changed in the way such that deleted sending = threads are not returned by getPendingMessages(). - Trusted Repository delivery method is now divided into "server-side = trusted repository", which is written by the MSH, and "client-side = repository", which is written by the client stub (Request Object). - The use of polling directory is removed and it can be safely deleted. = All messages are now stored in the message repository. - Fixed the bug that using different messaging mode in the same = application context causes error. - Updated XERCES library to version 2.2.1 - Supported fractional seconds in UTC formatted time, and we now do = checking on=20 timestamp when a message arrives. Now we generally use UTC time for = all=20 date/time parameter values and for returning results - Modified the behaviour of archive by date. Now all the messages that = are in=20 the time range (inclusive) are archived and nothing more. - Reformat the results returned by getDBConnectionPoolInfo so that it = looks=20 similar to the relevant settings in configuration file. - Fixed bug in dumping data from MSHLog: only output those in specified = time=20 period only. - Fixed the logger error displayed in tomcat console under Windows = environment. - Fixed the bug that always return success in "restore" function. - Bug Fix: the response message of archiveByDate() now shows the failed = message=20 IDs clearly. - Bug fix: Null pointer exception results if the message repository = directory=20 cannot be written. Now it throws exception that is properly handled by = the=20 Transaction object. Packaging: - Modified packaging part to fulfil the requirement of ebMS = specification. - Reorganized the exceptions thrown when composing/internalizing an = ebXML message. Now a SOAPValidationException will be thrown in case the = operation is invalid with respect to the ebXML schema, and an = EbxmlValidationException will be thrown if a logical error occurs. - Refactored an ebXML message validation module, which is responsible = for validate the correctness of the received message according various=20 requirement from the ebMS specification. The checkings include SOAP=20 formatting, payload integrity, etc. For any incorrect messages, = corresponding=20 ebXML error messages would be sent back to the sending MSH. Database: - Fixed the bug that connection pool cannot be reset successfuly if a connection cannot be closed successfully. - Added "GetNumRecordsInDB()" function to check the number of records = stored=20 in MSH database. Monitor has been updated to demonstrate its usage. - Added "GetDBConnectionPoolInfo()" function to check the information = about the=20 connection pool. Monitor has been updated to demonstrate its usage. - Modified database connection pool mechanism. Now a new database = connection=20 will be created and returned if the old connection has been idle for a specified time period. - Modified to close the database connections asynchronously, so that it = won't block the main threads. - Modified to mark the database connection invalid when returning to = connection=20 pool if any error occurred during database operations, so that the = object is=20 discarded and a new connection is created next time it is requested. - Changed DB schema to accommodate more than 2 possible values of sync = reply mode in CPA. - Now check the healthiness of DB connection in the connection pool = before any=20 database operations. - Bug Fix: "archiveByDate" function, when used with SQL Server, results = in a=20 SQL exception "cannot connvert arithmetic data type". This is fixed by = using parameterized query when selecting records. - Bug fix: connection is committed and then freed after archive = operations now. Monitor: - Fixed bug in monitor: once digital signature is turned on, it cannot = be=20 turned off even if the check box is unset. Regards, -Patrick -- Patrick Yee System Architect Center for E-Commerce Infrastructure Development (CECID) Dept. of Computer Science and Information Systems The University of Hong Kong Tel: (852) 22415674 Fax: (852) 25474611 |
|
From: Patrick Y. <kc...@ce...> - 2003-02-10 01:55:33
|
> I will strip down the little application server that we have to only > contain Hermes and put it up as an example of how easy it can be to > install Hermes. It consists of all OSS pieces so anyone could use it as > they wish. Our little application server, call Plexus, also uses JMX so > I will probably try to whip up a little MBean so that Hermes can be > managed with a JMX console. > That is great! Can we please give us some more information about that? We are delighted to see such distribution way. You have broadened our horizons. And we learnt a lot from you in open source aspects. :-) Regards, -Patrick |
|
From: Jason v. Z. <ja...@ze...> - 2003-02-07 14:38:59
|
On Fri, 2003-02-07 at 05:01, Patrick Yee wrote:
> Dear Jason,
> OK, we have added your patch to the source tree. Thanks for your effort.
Amazing thank you!
I will strip down the little application server that we have to only
contain Hermes and put it up as an example of how easy it can be to
install Hermes. It consists of all OSS pieces so anyone could use it as
they wish. Our little application server, call Plexus, also uses JMX so
I will probably try to whip up a little MBean so that Hermes can be
managed with a JMX console.
Much appreciated, thank you very much for listening. You guys are great!
:-)
> Regards, -Patrick
>
> ----- Original Message -----
> From: "Jason van Zyl" <ja...@ze...>
> To: <ebx...@li...>
> Sent: Tuesday, February 04, 2003 4:28 PM
> Subject: Re: [ebxmlms-develop] Variable interpolation in configuration
>
>
> > On Tue, 2003-02-04 at 03:02, Patrick Yee wrote:
> > > Hi Jason,
> > >
> > > Thanks for the suggestion. However, after some discussion, we think the
> > > change is not quite necessary because:
> > >
> > > 1. Hermes deployment is not a day-to-day work. We expect the
> configuration
> > > will not be changed frequently. So using static values will be adequate
> for
> > > most of the time.
> >
> > I have integrated Hermes into our application server which might be
> > installed anywhere in the filesystem on machines with various operating
> > systems. I need to be able to dynamically configure Hermes because I
> > don't know where the installation is going to land. Something like
> > "/tmp/hermes" might possibly work on unix machines but it certainly
> > wouldn't work on other platforms. In addition, we like to keep all the
> > files for our application grouped together. We don't care where they are
> > grouped together. Without interpolation I can't provide the type of
> > installation that we require. I do not know ahead of time where our
> > clients will install our product.
> >
> > > 2. In the scenario that you suggest, we are only transferring the
> > > "hard-wiring" of property values from Hermes's configuraiton file to the
> > > application server's configuration files.
> >
> > We don't hardwire anything. Everything is dynamic. Our application
> > server works from the directory where it is installed. We don't know
> > where ahead of time but when our container starts up it gathers
> > information from the environment and makes that available to all our
> > components running in the container.
> >
> > > There is anyway a file which
> > > should "hard-wire" the property values, which is not portable from file
> > > system to file system. Under this basis, we believe to "hard-wire" the
> value
> > > in Hermes property file is acceptable.
> >
> > You can't make an installer with Hermes in it without variable
> > interpolation or some sort of runtime configurability. Variable
> > interpolation is a very simple solution to the general problem of
> > relocatable applications.
> >
> > > 3. We need some extra exception handling when trying to interpolating a
> > > non-existing system property. In this angle, this makes the
> configuration
> > > more complicated. Our design philosophy is to keep every behaviour
> > > deterministic. Of course, we may not be doing very well, but at least
> that
> > > is our direction.
> >
> > I can add any exception handling if I missed something, more than happy
> > to make things as robust as possible.
> >
> > Allow a form of runtime configurability has no down side and is of great
> > value to users trying to integrate Hermes into various products. It
> > allows Hermes to be used in unforseen circumstances. For example the way
> > I have Hermes working now inside our container it could be stopped,
> > package up because it's all in a single directory, moved to another
> > machine in a completely different path, started up and Hermes would work
> > just as it did. This might need to be done because of hardware failure
> > or just because someone wants to move it. Providing this kind of
> > flexibility, I believe, is well worth any extra work that needs to be
> > done internally in Hermes. And I volunteer to do the work :-) For me
> > this feature is essential for the operation of our container and
> > necessary to satisfy our user requirements.
> >
> > > What do you think? Let's discuss about this. Thank you for your
> continuous
> > > input.
> >
> > Happy to help, you've saved me months of development time so I'll
> > contribute however I can.
> >
> > > Regards, -Patrick
> > >
> > > ----- Original Message -----
> > > From: "Jason van Zyl" <ja...@ze...>
> > > To: <ebx...@li...>
> > > Sent: Sunday, February 02, 2003 12:45 AM
> > > Subject: [ebxmlms-develop] Variable interpolation in configuration
> > >
> > >
> > > > Hi,
> > > >
> > > > I've added variable interpolation in the XMLProperty.java file so that
> I
> > > > can more easily integrate Hermes into our application server. The
> > > > interpolation only works with system properties with the "ebxmlms"
> > > > prefix.
> > > >
> > > > So I'm setting a system property in our application server with:
> > > >
> > > > <system-properties>
> > > > <property name="ebxmlms.basedir" value="${plexus.work}/ebxmlms"/>
> > > > </system-properties>
> > > >
> > > > And then I can do something like the following in the
> > > > msh.properties.xml:
> > > >
> > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > <Property>
> > > > <MSH>
> > > > <Log>
> > > > <!-- "JDK" or "LOG4J" -->
> > > > <UseLogger>LOG4J</UseLogger>
> > > > <!-- empty path: user.home -->
> > > > <LogPath>${ebxmlms.basedir}</LogPath>
> > > > <LogFile>msh.log</LogFile>
> > > > ...
> > > > </Log>
> > > > </MSH>
> > > > </Property>
> > > >
> > > > This makes it very easy for integrators, like myself, to move the
> > > > application server around the filesystem and have things completely
> > > > self-contained.
> > > >
> > > > So this means we can deploy Hermes and not have to deal with absolute
> > > > paths which is essential for our installation setup.
> > > >
> > > > You can find the file here:
> > > >
> > > > http://www.apache.org/~jvanzyl/ebxmlms/XMLProperty.java
> > > >
> > > > I'll send changes in whatever form you like. Do you prefer patches or
> > > > whole files?
> > > >
> > > >
> > > > --
> > > > jvz.
> > > >
> > > > Jason van Zyl
> > > > ja...@ze...
> > > > http://tambora.zenplex.org
> > > >
> > > > In short, man creates for himself a new religion of a rational
> > > > and technical order to justify his work and to be justified in it.
> > > >
> > > > -- Jacques Ellul, The Technological Society
> > > >
> > > >
> > > >
> > > > -------------------------------------------------------
> > > > This SF.NET email is sponsored by:
> > > > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > > > http://www.vasoftware.com
> > > > _______________________________________________
> > > > ebxmlms-develop mailing list
> > > > ebx...@li...
> > > > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
> > > >
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.NET email is sponsored by:
> > > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > > http://www.vasoftware.com
> > > _______________________________________________
> > > ebxmlms-develop mailing list
> > > ebx...@li...
> > > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
> > --
> > jvz.
> >
> > Jason van Zyl
> > ja...@ze...
> > http://tambora.zenplex.org
> >
> > In short, man creates for himself a new religion of a rational
> > and technical order to justify his work and to be justified in it.
> >
> > -- Jacques Ellul, The Technological Society
> >
> >
> >
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:
> > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > http://www.vasoftware.com
> > _______________________________________________
> > ebxmlms-develop mailing list
> > ebx...@li...
> > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
> >
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> ebxmlms-develop mailing list
> ebx...@li...
> https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
--
jvz.
Jason van Zyl
ja...@ze...
http://tambora.zenplex.org
In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
-- Jacques Ellul, The Technological Society
|
|
From: Patrick Y. <kc...@ce...> - 2003-02-07 10:01:37
|
Dear Jason,
OK, we have added your patch to the source tree. Thanks for your effort.
Regards, -Patrick
----- Original Message -----
From: "Jason van Zyl" <ja...@ze...>
To: <ebx...@li...>
Sent: Tuesday, February 04, 2003 4:28 PM
Subject: Re: [ebxmlms-develop] Variable interpolation in configuration
> On Tue, 2003-02-04 at 03:02, Patrick Yee wrote:
> > Hi Jason,
> >
> > Thanks for the suggestion. However, after some discussion, we think the
> > change is not quite necessary because:
> >
> > 1. Hermes deployment is not a day-to-day work. We expect the
configuration
> > will not be changed frequently. So using static values will be adequate
for
> > most of the time.
>
> I have integrated Hermes into our application server which might be
> installed anywhere in the filesystem on machines with various operating
> systems. I need to be able to dynamically configure Hermes because I
> don't know where the installation is going to land. Something like
> "/tmp/hermes" might possibly work on unix machines but it certainly
> wouldn't work on other platforms. In addition, we like to keep all the
> files for our application grouped together. We don't care where they are
> grouped together. Without interpolation I can't provide the type of
> installation that we require. I do not know ahead of time where our
> clients will install our product.
>
> > 2. In the scenario that you suggest, we are only transferring the
> > "hard-wiring" of property values from Hermes's configuraiton file to the
> > application server's configuration files.
>
> We don't hardwire anything. Everything is dynamic. Our application
> server works from the directory where it is installed. We don't know
> where ahead of time but when our container starts up it gathers
> information from the environment and makes that available to all our
> components running in the container.
>
> > There is anyway a file which
> > should "hard-wire" the property values, which is not portable from file
> > system to file system. Under this basis, we believe to "hard-wire" the
value
> > in Hermes property file is acceptable.
>
> You can't make an installer with Hermes in it without variable
> interpolation or some sort of runtime configurability. Variable
> interpolation is a very simple solution to the general problem of
> relocatable applications.
>
> > 3. We need some extra exception handling when trying to interpolating a
> > non-existing system property. In this angle, this makes the
configuration
> > more complicated. Our design philosophy is to keep every behaviour
> > deterministic. Of course, we may not be doing very well, but at least
that
> > is our direction.
>
> I can add any exception handling if I missed something, more than happy
> to make things as robust as possible.
>
> Allow a form of runtime configurability has no down side and is of great
> value to users trying to integrate Hermes into various products. It
> allows Hermes to be used in unforseen circumstances. For example the way
> I have Hermes working now inside our container it could be stopped,
> package up because it's all in a single directory, moved to another
> machine in a completely different path, started up and Hermes would work
> just as it did. This might need to be done because of hardware failure
> or just because someone wants to move it. Providing this kind of
> flexibility, I believe, is well worth any extra work that needs to be
> done internally in Hermes. And I volunteer to do the work :-) For me
> this feature is essential for the operation of our container and
> necessary to satisfy our user requirements.
>
> > What do you think? Let's discuss about this. Thank you for your
continuous
> > input.
>
> Happy to help, you've saved me months of development time so I'll
> contribute however I can.
>
> > Regards, -Patrick
> >
> > ----- Original Message -----
> > From: "Jason van Zyl" <ja...@ze...>
> > To: <ebx...@li...>
> > Sent: Sunday, February 02, 2003 12:45 AM
> > Subject: [ebxmlms-develop] Variable interpolation in configuration
> >
> >
> > > Hi,
> > >
> > > I've added variable interpolation in the XMLProperty.java file so that
I
> > > can more easily integrate Hermes into our application server. The
> > > interpolation only works with system properties with the "ebxmlms"
> > > prefix.
> > >
> > > So I'm setting a system property in our application server with:
> > >
> > > <system-properties>
> > > <property name="ebxmlms.basedir" value="${plexus.work}/ebxmlms"/>
> > > </system-properties>
> > >
> > > And then I can do something like the following in the
> > > msh.properties.xml:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <Property>
> > > <MSH>
> > > <Log>
> > > <!-- "JDK" or "LOG4J" -->
> > > <UseLogger>LOG4J</UseLogger>
> > > <!-- empty path: user.home -->
> > > <LogPath>${ebxmlms.basedir}</LogPath>
> > > <LogFile>msh.log</LogFile>
> > > ...
> > > </Log>
> > > </MSH>
> > > </Property>
> > >
> > > This makes it very easy for integrators, like myself, to move the
> > > application server around the filesystem and have things completely
> > > self-contained.
> > >
> > > So this means we can deploy Hermes and not have to deal with absolute
> > > paths which is essential for our installation setup.
> > >
> > > You can find the file here:
> > >
> > > http://www.apache.org/~jvanzyl/ebxmlms/XMLProperty.java
> > >
> > > I'll send changes in whatever form you like. Do you prefer patches or
> > > whole files?
> > >
> > >
> > > --
> > > jvz.
> > >
> > > Jason van Zyl
> > > ja...@ze...
> > > http://tambora.zenplex.org
> > >
> > > In short, man creates for himself a new religion of a rational
> > > and technical order to justify his work and to be justified in it.
> > >
> > > -- Jacques Ellul, The Technological Society
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.NET email is sponsored by:
> > > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > > http://www.vasoftware.com
> > > _______________________________________________
> > > ebxmlms-develop mailing list
> > > ebx...@li...
> > > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
> > >
> >
> >
> >
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:
> > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > http://www.vasoftware.com
> > _______________________________________________
> > ebxmlms-develop mailing list
> > ebx...@li...
> > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
> --
> jvz.
>
> Jason van Zyl
> ja...@ze...
> http://tambora.zenplex.org
>
> In short, man creates for himself a new religion of a rational
> and technical order to justify his work and to be justified in it.
>
> -- Jacques Ellul, The Technological Society
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> ebxmlms-develop mailing list
> ebx...@li...
> https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
>
|
|
From: Jason v. Z. <ja...@ze...> - 2003-02-04 08:29:01
|
On Tue, 2003-02-04 at 03:02, Patrick Yee wrote:
> Hi Jason,
>
> Thanks for the suggestion. However, after some discussion, we think the
> change is not quite necessary because:
>
> 1. Hermes deployment is not a day-to-day work. We expect the configuration
> will not be changed frequently. So using static values will be adequate for
> most of the time.
I have integrated Hermes into our application server which might be
installed anywhere in the filesystem on machines with various operating
systems. I need to be able to dynamically configure Hermes because I
don't know where the installation is going to land. Something like
"/tmp/hermes" might possibly work on unix machines but it certainly
wouldn't work on other platforms. In addition, we like to keep all the
files for our application grouped together. We don't care where they are
grouped together. Without interpolation I can't provide the type of
installation that we require. I do not know ahead of time where our
clients will install our product.
> 2. In the scenario that you suggest, we are only transferring the
> "hard-wiring" of property values from Hermes's configuraiton file to the
> application server's configuration files.
We don't hardwire anything. Everything is dynamic. Our application
server works from the directory where it is installed. We don't know
where ahead of time but when our container starts up it gathers
information from the environment and makes that available to all our
components running in the container.
> There is anyway a file which
> should "hard-wire" the property values, which is not portable from file
> system to file system. Under this basis, we believe to "hard-wire" the value
> in Hermes property file is acceptable.
You can't make an installer with Hermes in it without variable
interpolation or some sort of runtime configurability. Variable
interpolation is a very simple solution to the general problem of
relocatable applications.
> 3. We need some extra exception handling when trying to interpolating a
> non-existing system property. In this angle, this makes the configuration
> more complicated. Our design philosophy is to keep every behaviour
> deterministic. Of course, we may not be doing very well, but at least that
> is our direction.
I can add any exception handling if I missed something, more than happy
to make things as robust as possible.
Allow a form of runtime configurability has no down side and is of great
value to users trying to integrate Hermes into various products. It
allows Hermes to be used in unforseen circumstances. For example the way
I have Hermes working now inside our container it could be stopped,
package up because it's all in a single directory, moved to another
machine in a completely different path, started up and Hermes would work
just as it did. This might need to be done because of hardware failure
or just because someone wants to move it. Providing this kind of
flexibility, I believe, is well worth any extra work that needs to be
done internally in Hermes. And I volunteer to do the work :-) For me
this feature is essential for the operation of our container and
necessary to satisfy our user requirements.
> What do you think? Let's discuss about this. Thank you for your continuous
> input.
Happy to help, you've saved me months of development time so I'll
contribute however I can.
> Regards, -Patrick
>
> ----- Original Message -----
> From: "Jason van Zyl" <ja...@ze...>
> To: <ebx...@li...>
> Sent: Sunday, February 02, 2003 12:45 AM
> Subject: [ebxmlms-develop] Variable interpolation in configuration
>
>
> > Hi,
> >
> > I've added variable interpolation in the XMLProperty.java file so that I
> > can more easily integrate Hermes into our application server. The
> > interpolation only works with system properties with the "ebxmlms"
> > prefix.
> >
> > So I'm setting a system property in our application server with:
> >
> > <system-properties>
> > <property name="ebxmlms.basedir" value="${plexus.work}/ebxmlms"/>
> > </system-properties>
> >
> > And then I can do something like the following in the
> > msh.properties.xml:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <Property>
> > <MSH>
> > <Log>
> > <!-- "JDK" or "LOG4J" -->
> > <UseLogger>LOG4J</UseLogger>
> > <!-- empty path: user.home -->
> > <LogPath>${ebxmlms.basedir}</LogPath>
> > <LogFile>msh.log</LogFile>
> > ...
> > </Log>
> > </MSH>
> > </Property>
> >
> > This makes it very easy for integrators, like myself, to move the
> > application server around the filesystem and have things completely
> > self-contained.
> >
> > So this means we can deploy Hermes and not have to deal with absolute
> > paths which is essential for our installation setup.
> >
> > You can find the file here:
> >
> > http://www.apache.org/~jvanzyl/ebxmlms/XMLProperty.java
> >
> > I'll send changes in whatever form you like. Do you prefer patches or
> > whole files?
> >
> >
> > --
> > jvz.
> >
> > Jason van Zyl
> > ja...@ze...
> > http://tambora.zenplex.org
> >
> > In short, man creates for himself a new religion of a rational
> > and technical order to justify his work and to be justified in it.
> >
> > -- Jacques Ellul, The Technological Society
> >
> >
> >
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:
> > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > http://www.vasoftware.com
> > _______________________________________________
> > ebxmlms-develop mailing list
> > ebx...@li...
> > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
> >
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> ebxmlms-develop mailing list
> ebx...@li...
> https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop
--
jvz.
Jason van Zyl
ja...@ze...
http://tambora.zenplex.org
In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
-- Jacques Ellul, The Technological Society
|
|
From: Patrick Y. <kc...@ce...> - 2003-02-04 08:25:31
|
Hi Gait,
(sorry I forgot to mention one more point in my last mail).
We decided to add one more message delivery mode other than polling. We =
will add 2 methods in Request (method names subjected to change):
1. getUndeliveredMessageIDSet() - to get ID of all undelivered message
2. getMessageByID() - to "retrieve" the message pro-actively
These methods suit the users who want control. :-)
Regards, -Patrick
----- Original Message -----=20
From: Patrick Yee=20
To: ebx...@li...=20
Sent: Tuesday, February 04, 2003 4:20 PM
Subject: Re: [ebxmlms-develop] Why the delay after receiving a =
message?
Hi Gait,
After some discussions, we have modified the MIN_WAITING_TIME to 0. =
This would not be harmful if there really are so many message to poll. =
Please check the latest CVS. However, the users are recommended:
1. not to create more than 1 Request object, polling for the same AC. =
The MSH server has no clue on this and this can make unnecessary =
congestion. Now we are implementing a lock so that no racing issue will =
occur when 2 Request objects come in and get message for the same AC. =
Now, without the fix, some data inconsistency may occur.
2. not to use HSQLDB for heavy usage, as you cannot create more than 1 =
connection at a time using HSQLDB. The users are recommended to set the =
maximum connection in db connection poll to 1 in the Hermes property =
file.
Thanks for the comment. Let's further discuss if you have any =
questions.
Regards, -Patrick
----- Original Message -----=20
From: Gait Boxman=20
To: ebx...@li...=20
Sent: Monday, February 03, 2003 6:03 PM
Subject: Re: [ebxmlms-develop] Why the delay after receiving a =
message?
Hi Frankie,
Re waiting time: hadn't thought of it that way. Suggest to change =
the Request.java to cover that thinking, try this:
=3D=3D=3D=3D
diff -r1.48 Request.java
275c275,280
< waitInterval =3D Constants.REQUEST_MIN_WAIT_INTERVAL;
---
> if( Constants.REQUEST_MIN_WAIT_INTERVAL < customInterval) {
> waitInterval =3D Constants.REQUEST_MIN_WAIT_INTERVAL;
> }
> else {
> waitInterval =3D customInterval;
> }
=3D=3D=3D=3D
Since I'm not a hardcore Java programmer, I'm not entirely sure how =
thread safety comes into play. I can give you the scenario, though: I =
set up a typical test scenario with a sender (using the Monitor for =
this), a Reflector (a Request based listener that constructs and sends a =
reply message) and a PayloadVerifier (also a Request based listener, not =
using the code below). The SendPanel of the Monitor is patched so that =
it saves the message and its header to disk as well, and the =
PayloadVerifier compares the reply message with the saved message and =
header. After registering the Reflector and the PayloadVerifier with the =
MSH, those clients are stopped, and I send about 20 messages to the MSH, =
targeted at the Reflector. Then the PayloadVerifier and Reflector are =
restarted (in that order). With a 100ms customInterval and the patch =
above, all goes well, but with a 10ms customInterval, only three =
messages are received. Subsequent messages are ignored until the MSH is =
restarted (not completely tested on what exactly to restart, could be =
just restarting the clients would be enough).
All this running on my 500MHz laptop with 256Mb memory, tomcat =
4.1.10 and j2sdk 1.4.1 and Win2000pro. I can do more tests, but I'm a =
little pressed for time at the moment :-).
Re db connection: I'm running against hsqldb, very convenient in the =
normal setup, especially when testing and you frequently need to clean =
the db's. But when running the MSH and starting up the code as follows:
=3D=3D=3D=3D
String cpaID =3D "*";
String conversationID =3D "*";
String service =3D "*";
String action =3D "PayloadVerify";
ApplicationContext ac =3D new ApplicationContext(
cpaID, conversationID, service, action);
String transportType =3D "HTTP";
String toMshUrl =3D "http://localhost:8080/msh";
URL url =3D new URL(toMshUrl);
MessageServiceHandler msh =3D new MessageServiceHandler();
MessageServiceHandlerConfig cfg =3D new =
MessageServiceHandlerConfig( ac, url, (MessageListener)this, =
transportType, 2, "30000" );
MessageServiceHandlerConnection con =3D msh.register(cfg);
try {
while(true)
{
EbxmlMessage msg =3D con.getMessage();
System.out.println("Pulled a message, id =3D " + =
msg.getMessageId());
}
}
catch(Exception e) {
e.printStackTrace();
=20
}
msh.destroy();
=3D=3D=3D=3D
I get the following trace:
=3D=3D=3D=3D
log4j:WARN No appenders could be found for logger =
(hk.hku.cecid.phoenix.message.
handler.MessageServiceHandler).
log4j:WARN Please initialize the log4j system properly.
Info: using property file in /C:/ebxmlms/sample/msh.properties.xml
hk.hku.cecid.phoenix.message.handler.MessageServiceHandlerException: =
Cannot crea
te database connection: The database is already in use by another =
process
at =
hk.hku.cecid.phoenix.message.handler.MessageServiceHandler.<init>(Unk
nown Source)
at payloadverify.run(payloadverify.java:33)
at payloadverify.main(payloadverify.java:14)
=3D=3D=3D=3D
With tomcat shut down, the trace is as follows:
=3D=3D=3D=3D
PayloadVerify setting up...
log4j:WARN No appenders could be found for logger =
(hk.hku.cecid.phoenix.message.
handler.MessageServiceHandler).
log4j:WARN Please initialize the log4j system properly.
Info: using property file in /C:/ebxmlms/sample/msh.properties.xml
java.lang.NullPointerException
at =
hk.hku.cecid.phoenix.message.handler.MessageServiceHandler.register(U
nknown Source)
at payloadverify.run(payloadverify.java:35)
at payloadverify.main(payloadverify.java:14)
=3D=3D=3D=3D
Re retrieving messages by id: I agree on the MessageOrder, but what =
can I say, I'm a control freak :-).
Re getPendingMessages: that possibility occurred to me after I hit =
the send button :-).=20
Many thnx, Gait.
----- Original Message -----=20
From: Frankie Lam=20
To: ebx...@li...=20
Sent: Monday, February 03, 2003 9:54 AM
Subject: Re: [ebxmlms-develop] Why the delay after receiving a =
message?
Dear Boxman,
The waiting time is reset to REQUEST_MIN_WAIT_INTERVAL when the =
last polling to MSH shows positive response, i.e. a new message arrives. =
It is because we expect that the client would specify an interval larger =
than that and resetting it causes the messages to be delivered to the =
client application faster. But we are quite concerned about the message =
loss for frequent polling. It seems to me that it is a thread-safety =
issue.
Could you please tell us more about "issues with database =
connection" using hsqldb? And also the use of "getPendingMessages()" is =
to obtain the number of messages pending to be *sent* rather than =
*received*. So perhaps there is a misunderstanding here.
It's a good suggestion that the messages can be retrieved by =
message ID. However, I think the ebMS specification does not allow such =
use if "MessageOrder" is enabled, when the messages must be delivered =
sequentially to the application in a specified order. Personally I =
suggest that you may get all the messages and put it in your own buffer =
for further processing.
Best regards,
Frankie
----- Original Message -----=20
From: Gait Boxman=20
To: ebx...@li...=20
Sent: Monday, February 03, 2003 4:35 PM
Subject: [ebxmlms-develop] Why the delay after receiving a =
message?
Hi team,
while trying to speed up the receiving process (one of our apps =
is batch oriented and typically needs to retrieve any buffered messages =
as fast as possible without waiting for new ones), I found that the wait =
time is reset to REQUEST_MIN_WAIT_INTERVAL after receiving a message =
from the server (in Request.java), rather than the value set explicitly. =
While my testing showed having 2 listeners polling every 10ms will =
result in message loss (I patched Request.java to leave the value at the =
customInterval), I am curious about the cause behind that, and a =
possibly more accurate timing. For instance, making my listeners poll at =
100ms went just fine.
Trying to bypass the polling mechanism in Request.java and going =
directly through the MessageServiceHandlerConnection, as suggested a =
while ago to Jason by Ng, gave me some issues with the database =
connection when the MSH is running (using hsqldb) and with null pointers =
when the MSH is not running.=20
Ideally, I'd like to retrieve the number of messages queued in =
the MSH for my AC, and then just retrieve those messages in a burst. =
However, getPendingMessages always returns an empty list, rather than a =
list of queued messages, so I can't even count the number pending. It =
would be even cooler if I could retrieve the messages by their =
messageId.
thnx, Gait.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gait Boxman
Manager Advanced Technology & Standards
TIE Product Development BV
Amsterdam, The Netherlands
Tel: +31 20 658 9091 Fax: +31 20 658 9945
E-mail: gai...@ti... WWW: www.TIEglobal.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
From: Patrick Y. <kc...@ce...> - 2003-02-04 08:21:14
|
Hi Gait,
After some discussions, we have modified the MIN_WAITING_TIME to 0. This =
would not be harmful if there really are so many message to poll. Please =
check the latest CVS. However, the users are recommended:
1. not to create more than 1 Request object, polling for the same AC. =
The MSH server has no clue on this and this can make unnecessary =
congestion. Now we are implementing a lock so that no racing issue will =
occur when 2 Request objects come in and get message for the same AC. =
Now, without the fix, some data inconsistency may occur.
2. not to use HSQLDB for heavy usage, as you cannot create more than 1 =
connection at a time using HSQLDB. The users are recommended to set the =
maximum connection in db connection poll to 1 in the Hermes property =
file.
Thanks for the comment. Let's further discuss if you have any questions.
Regards, -Patrick
----- Original Message -----=20
From: Gait Boxman=20
To: ebx...@li...=20
Sent: Monday, February 03, 2003 6:03 PM
Subject: Re: [ebxmlms-develop] Why the delay after receiving a =
message?
Hi Frankie,
Re waiting time: hadn't thought of it that way. Suggest to change the =
Request.java to cover that thinking, try this:
=3D=3D=3D=3D
diff -r1.48 Request.java
275c275,280
< waitInterval =3D Constants.REQUEST_MIN_WAIT_INTERVAL;
---
> if( Constants.REQUEST_MIN_WAIT_INTERVAL < customInterval) {
> waitInterval =3D Constants.REQUEST_MIN_WAIT_INTERVAL;
> }
> else {
> waitInterval =3D customInterval;
> }
=3D=3D=3D=3D
Since I'm not a hardcore Java programmer, I'm not entirely sure how =
thread safety comes into play. I can give you the scenario, though: I =
set up a typical test scenario with a sender (using the Monitor for =
this), a Reflector (a Request based listener that constructs and sends a =
reply message) and a PayloadVerifier (also a Request based listener, not =
using the code below). The SendPanel of the Monitor is patched so that =
it saves the message and its header to disk as well, and the =
PayloadVerifier compares the reply message with the saved message and =
header. After registering the Reflector and the PayloadVerifier with the =
MSH, those clients are stopped, and I send about 20 messages to the MSH, =
targeted at the Reflector. Then the PayloadVerifier and Reflector are =
restarted (in that order). With a 100ms customInterval and the patch =
above, all goes well, but with a 10ms customInterval, only three =
messages are received. Subsequent messages are ignored until the MSH is =
restarted (not completely tested on what exactly to restart, could be =
just restarting the clients would be enough).
All this running on my 500MHz laptop with 256Mb memory, tomcat 4.1.10 =
and j2sdk 1.4.1 and Win2000pro. I can do more tests, but I'm a little =
pressed for time at the moment :-).
Re db connection: I'm running against hsqldb, very convenient in the =
normal setup, especially when testing and you frequently need to clean =
the db's. But when running the MSH and starting up the code as follows:
=3D=3D=3D=3D
String cpaID =3D "*";
String conversationID =3D "*";
String service =3D "*";
String action =3D "PayloadVerify";
ApplicationContext ac =3D new ApplicationContext(
cpaID, conversationID, service, action);
String transportType =3D "HTTP";
String toMshUrl =3D "http://localhost:8080/msh";
URL url =3D new URL(toMshUrl);
MessageServiceHandler msh =3D new MessageServiceHandler();
MessageServiceHandlerConfig cfg =3D new =
MessageServiceHandlerConfig( ac, url, (MessageListener)this, =
transportType, 2, "30000" );
MessageServiceHandlerConnection con =3D msh.register(cfg);
try {
while(true)
{
EbxmlMessage msg =3D con.getMessage();
System.out.println("Pulled a message, id =3D " + =
msg.getMessageId());
}
}
catch(Exception e) {
e.printStackTrace();
=20
}
msh.destroy();
=3D=3D=3D=3D
I get the following trace:
=3D=3D=3D=3D
log4j:WARN No appenders could be found for logger =
(hk.hku.cecid.phoenix.message.
handler.MessageServiceHandler).
log4j:WARN Please initialize the log4j system properly.
Info: using property file in /C:/ebxmlms/sample/msh.properties.xml
hk.hku.cecid.phoenix.message.handler.MessageServiceHandlerException: =
Cannot crea
te database connection: The database is already in use by another =
process
at =
hk.hku.cecid.phoenix.message.handler.MessageServiceHandler.<init>(Unk
nown Source)
at payloadverify.run(payloadverify.java:33)
at payloadverify.main(payloadverify.java:14)
=3D=3D=3D=3D
With tomcat shut down, the trace is as follows:
=3D=3D=3D=3D
PayloadVerify setting up...
log4j:WARN No appenders could be found for logger =
(hk.hku.cecid.phoenix.message.
handler.MessageServiceHandler).
log4j:WARN Please initialize the log4j system properly.
Info: using property file in /C:/ebxmlms/sample/msh.properties.xml
java.lang.NullPointerException
at =
hk.hku.cecid.phoenix.message.handler.MessageServiceHandler.register(U
nknown Source)
at payloadverify.run(payloadverify.java:35)
at payloadverify.main(payloadverify.java:14)
=3D=3D=3D=3D
Re retrieving messages by id: I agree on the MessageOrder, but what =
can I say, I'm a control freak :-).
Re getPendingMessages: that possibility occurred to me after I hit the =
send button :-).=20
Many thnx, Gait.
----- Original Message -----=20
From: Frankie Lam=20
To: ebx...@li...=20
Sent: Monday, February 03, 2003 9:54 AM
Subject: Re: [ebxmlms-develop] Why the delay after receiving a =
message?
Dear Boxman,
The waiting time is reset to REQUEST_MIN_WAIT_INTERVAL when the last =
polling to MSH shows positive response, i.e. a new message arrives. It =
is because we expect that the client would specify an interval larger =
than that and resetting it causes the messages to be delivered to the =
client application faster. But we are quite concerned about the message =
loss for frequent polling. It seems to me that it is a thread-safety =
issue.
Could you please tell us more about "issues with database =
connection" using hsqldb? And also the use of "getPendingMessages()" is =
to obtain the number of messages pending to be *sent* rather than =
*received*. So perhaps there is a misunderstanding here.
It's a good suggestion that the messages can be retrieved by message =
ID. However, I think the ebMS specification does not allow such use if =
"MessageOrder" is enabled, when the messages must be delivered =
sequentially to the application in a specified order. Personally I =
suggest that you may get all the messages and put it in your own buffer =
for further processing.
Best regards,
Frankie
----- Original Message -----=20
From: Gait Boxman=20
To: ebx...@li...=20
Sent: Monday, February 03, 2003 4:35 PM
Subject: [ebxmlms-develop] Why the delay after receiving a =
message?
Hi team,
while trying to speed up the receiving process (one of our apps is =
batch oriented and typically needs to retrieve any buffered messages as =
fast as possible without waiting for new ones), I found that the wait =
time is reset to REQUEST_MIN_WAIT_INTERVAL after receiving a message =
from the server (in Request.java), rather than the value set explicitly. =
While my testing showed having 2 listeners polling every 10ms will =
result in message loss (I patched Request.java to leave the value at the =
customInterval), I am curious about the cause behind that, and a =
possibly more accurate timing. For instance, making my listeners poll at =
100ms went just fine.
Trying to bypass the polling mechanism in Request.java and going =
directly through the MessageServiceHandlerConnection, as suggested a =
while ago to Jason by Ng, gave me some issues with the database =
connection when the MSH is running (using hsqldb) and with null pointers =
when the MSH is not running.=20
Ideally, I'd like to retrieve the number of messages queued in the =
MSH for my AC, and then just retrieve those messages in a burst. =
However, getPendingMessages always returns an empty list, rather than a =
list of queued messages, so I can't even count the number pending. It =
would be even cooler if I could retrieve the messages by their =
messageId.
thnx, Gait.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gait Boxman
Manager Advanced Technology & Standards
TIE Product Development BV
Amsterdam, The Netherlands
Tel: +31 20 658 9091 Fax: +31 20 658 9945
E-mail: gai...@ti... WWW: www.TIEglobal.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
From: Patrick Y. <kc...@ce...> - 2003-02-04 08:11:30
|
Hi Jason, Thanks again. We have committed your patch. Regards, -Patrick ----- Original Message ----- From: "Lam Tat Shing" <ts...@ce...> To: <ebx...@li...> Sent: Sunday, February 02, 2003 2:20 PM Subject: Re: [ebxmlms-develop] LogPath directory check > Dear Jason, > > Thanks for the patches =) We'll have a look through it. > > Personally I think that it's more convenient for us to inspect the changes > using a diff file. > > Best regards, > Frankie > > On 1 Feb 2003, Jason van Zyl wrote: > > :Hi, > : > :I just made a simple change to check for the existence of the logpath > :when using Log4J. Change is at the bottom of the file. I need this as > :our application server gets dropped in a filesystem in a pristine form. > :We create everything we need when the application starts up for the > :first time. > : > :http://www.apache.org/~jvanzyl/ebxmlms/Utility.java > : > :-- > :jvz. > : > :Jason van Zyl > :ja...@ze... > :http://tambora.zenplex.org > : > :In short, man creates for himself a new religion of a rational > :and technical order to justify his work and to be justified in it. > : > : -- Jacques Ellul, The Technological Society > : > : > : > :------------------------------------------------------- > :This SF.NET email is sponsored by: > :SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > :http://www.vasoftware.com > :_______________________________________________ > :ebxmlms-develop mailing list > :ebx...@li... > :https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop > : > > > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > _______________________________________________ > ebxmlms-develop mailing list > ebx...@li... > https://lists.sourceforge.net/lists/listinfo/ebxmlms-develop > |