Page 1 of 1

Calling Web Service from DS Routine

Posted: Wed Dec 06, 2006 6:19 pm
by nick.bond
Hi,

We are having a strange problem when calling a Web Service from a generated routine. If there is the following job structure

Sequence A
|
Sequence B
|
Web Service Routine

Sequence B will complete and the Web Service routine completes successfully but Sequence A will never complete because it seems to loose track of the state of Sequence B.

When looking at the log of Sequence B the time suddenly changes by an hour which may be connected to the controlling sequence loosing control of it.
Occurred: 11:03:48 AM On date: 7/12/2006 Type: Control
Event: Starting Job WebServiceRoutineCheck.
Occurred: 11:03:48 AM On date: 7/12/2006 Type: Info
Event: Environment variable settings: (...)
Occurred: 11:03:48 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (@Coordinator): Starting new run of checkpointed Sequence job
Occurred: 11:03:49 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (exceptionReceive): Debug 09
Occurred: 11:03:49 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (exceptionReceive): My Time= 11:03:49:
Occurred: 10:03:51 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (exceptionReceive): Debug 10
Occurred: 10:03:51 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (exceptionReceive): My Time= 10:03:51:
Occurred: 10:03:51 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (@Sequencer_1): OKOKOKOKOK
Occurred: 10:03:51 AM On date: 7/12/2006 Type: Info
Event: WebServiceRoutineCheck..JobControl (@Coordinator): Summary of sequence run (...)
Occurred: 10:03:51 AM On date: 7/12/2006 Type: Control
Event: Finished Job WebServiceRoutineCheck.

By debuging the DS generated routine I can see that the change in system time takes place when the Web Service is actually called.

Code: Select all

*************************************************************
      * Call the actual web service, returning the Ans                
 ************************************************************
      Ans = ''
      ds%%status = callWebService( ds%%wsHdl, 'ARRAY', Ans )
I inserted into the routine two lines either side of the Web Service call like:

Code: Select all

CALL DSLogInfo( 'My Time= ' : Oconv(Time(), 'MTS:'):': ' , RoutineName )
You can see from the output in the log extract that DS thinks the system time has changed??????

Anyone got any ideas???????

Thanks, Nick.

Posted: Wed Dec 06, 2006 6:47 pm
by ray.wurlod
AS to the time "change", looks like whatever is hosting the web service has not adjusted for daylight saving. Or there's a really weird bug in the exception handler.

Posted: Wed Dec 06, 2006 8:22 pm
by eostic
I like Ray's thoughts --- it's certainly a good possibility --- and I also seem to remember something like this coming up a long time ago, and it had something to do with either the axis engine underneath WSPack, or the JVM... Some googling of "axis SOAP daylight savings" shows some interesting theories.

Certainly a strange one.

Ernie

Posted: Wed Dec 06, 2006 9:53 pm
by nick.bond
Thanks for suggestions, the Web Methods guy is looking into the configuration of the time on the Web Services box.

Why would DS use the time from the Web Services box as it's system time? Surely it should always use the time on the DS server.

Posted: Thu Dec 07, 2006 2:43 am
by ray.wurlod
I'm sure Ernie will be asking that very same question of the engineers who look after this part of the product!!

Posted: Thu Dec 07, 2006 11:35 pm
by nick.bond
Problem is now solved. Our timezone settings were:
EET-10EETDT,M10.5.0,M4.1.0
and by changing it to
EET-10EETDT-11,M10.5.0,M4.1.0

the problem dissapeared. I couldn't get DataStage to pickup the change at a system level when rebooting DataStage so changed the value in the project with user definded parameter.

I'm told by our AIX admin that AIX doesn't use the -11 anywhere and that's why it's not set but I guess something in the Web Methods stuff does.