ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » [SOLVED]Clustered UPES causes execution server to die

Post new topic  Reply to topic
 [SOLVED]Clustered UPES causes execution server to die « View previous topic :: View next topic » 
Author Message
TJW
PostPosted: Wed Mar 12, 2003 8:10 am    Post subject: [SOLVED]Clustered UPES causes execution server to die Reply with quote

Novice

Joined: 11 Dec 2002
Posts: 16
Location: UK

Has anyone else experienced this 'problem' ...

A UPES is defined with a queue name but a blank queue manager name (this will be a clustered queue).

An activity in a process is defined as using this UPES.

If the queue refered to by the UPES does not exist then when an execution server reaches this activity it fails with error :

    FmcAssertionException,.Condition=***.Pre-condition.failed.in.e:\v332\src\fmckstr.inl(323):
    .!IsNull().&&.!rhs.IsNull()

Ouch! Surely an MQError 2085 (MQRC_UNKNOWN_OBJECT_NAME) would have been much friendlier.
Back to top
View user's profile Send private message
DJGoodrich
PostPosted: Wed Mar 12, 2003 9:38 am    Post subject: Clustered UPES causes execution server to die Reply with quote

Apprentice

Joined: 12 Dec 2001
Posts: 30
Location: SW Florida

TJW,

While not(yet) a UPES expert, the problem could be more MQ specific.

Whether or not you are using clusters or distributed queuing, my understanding and experience has been you can only issue a GET from a locally defined queue.
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
vennela
PostPosted: Wed Mar 12, 2003 10:00 am    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

DJG:
Workflow would PUT message to UPES and GET from EXEXMLINPUTQ.

TJW
My exec server is not failing.

Is it a synchronous activity or asynchronous. Where are you seeing this error.

-------
Venny
Back to top
View user's profile Send private message Send e-mail Visit poster's website
TJW
PostPosted: Thu Mar 13, 2003 1:24 am    Post subject: Reply with quote

Novice

Joined: 11 Dec 2002
Posts: 16
Location: UK

I can replicate this error with both synchronous and asynchronous activities.

If I specify a queue manager for the (still) undefined queue then the UPES activity generates the expected MQerror 2085 rather than crashing the execution server. Unfortunqtely this isn't a work around that I can use as it defines the UPES queue as local instead of clustered.

By the way, this is MQWF 3.3.2 SP 2 on WindowsNT ... yes I know SP3,4 and v3.4 are available but it isn't possible to upgrade the system just yet.

Below is a sample fdl that I've used to test the problem - it requires a local queue SYNCH_QUEUE to be defined otherwise the activity that uses it will also cause the execution server to fail



Code:

/*
 *
 *  FDL definitions generated by MQSeries Workflow
 *
 */
CODEPAGE 1252
FM_RELEASE V3R3 2

/*
 *  PROGRAMs
 */
PROGRAM 'Dummy'
  DESCRIPTION "Dummy application taking any data structure"
  STRUCTURES_FROM_ACTIVITY
  UNATTENDED
  WINNT EXE PATH_AND_FILENAME "c:\winnt\system32\cmd.exe"
    INHERIT ENVIRONMENT
    STYLE VISIBLE
    START FOREGROUND
END 'Dummy'

/*
 *  SERVERs
 */
SERVER 'BADUPES'
  DESCRIPTION "UPES using an undefined queue"
  RELATED_GROUP 'FMCGRP'
  RELATED_SYSTEM 'FMCSYS'
  TYPE USER_DEFINED_PROGRAM_EXECUTION_SERVER
    MQSYSTEM MQSERIES
    MESSAGE_FORMAT XML
    PHYSICAL_QUEUE_NAME "UNDEFINED_QUEUE"
    VERSION 3
    RELEASE 3
    LEVEL 0
END 'BADUPES'

SERVER 'SYNCH'
  DESCRIPTION "Dummy UPES used for synchronisation - QUEUE MUST EXIST"
  RELATED_GROUP 'FMCGRP'
  RELATED_SYSTEM 'FMCSYS'
  TYPE USER_DEFINED_PROGRAM_EXECUTION_SERVER
    MQSYSTEM MQSERIES
    MESSAGE_FORMAT XML
    PHYSICAL_QUEUE_NAME "SYNCH_QUEUE"
    VERSION 3
    RELEASE 3
    LEVEL 0
END 'SYNCH'

/*
 *  PROCESSes
 */
/*
 *  PROCESS SERTEST
 */
PROCESS 'SERTEST' ( 'Default Data Structure', 'Default Data Structure' )
  DESCRIPTION "Test serial processing when a queue does not exist"
  DO NOT PROMPT_AT_PROCESS_START
  WINDOW VIEW_REFERENCE_POINT XPOS 0 YPOS 378
  WINDOW SHOW ALL CONNECTORS
  WINDOW SHOW NO CONDITIONS
  SOURCE 1 XPOS -600 YPOS 600
  PROGRAM_ACTIVITY 'FINISH' ( 'Default Data Structure', 'Default Data Structure' )
    DESCRIPTION "If we get here then the test activity has been processed"
    START AUTOMATIC WHEN AT_LEAST_ONE CONNECTOR TRUE
    EXIT AUTOMATIC
    LAYOUT XPOS 600 YPOS 300
    NAME_POSITION XPOS 600 YPOS 225
    PRIORITY DEFINED_IN INPUT_CONTAINER
    PROGRAM 'Dummy'
    PROGRAM_EXECUTION_UNIT 'SYNCH.FMCSYS.FMCGRP'
    SYNCHRONIZATION NESTED
  END 'FINISH'
  PROGRAM_ACTIVITY 'LAUNCH' ( 'Default Data Structure', 'Default Data Structure' )
    DESCRIPTION "Activity to launch the UPES activity under test"
    START AUTOMATIC WHEN AT_LEAST_ONE CONNECTOR TRUE
    EXIT AUTOMATIC
    LAYOUT XPOS -400 YPOS 300
    NAME_POSITION XPOS -400 YPOS 225
    PRIORITY DEFINED_IN INPUT_CONTAINER
    PROGRAM 'Dummy'
    PROGRAM_EXECUTION_UNIT 'SYNCH.FMCSYS.FMCGRP'
    SYNCHRONIZATION NESTED
  END 'LAUNCH'
  PROGRAM_ACTIVITY 'TESTUPES' ( 'Default Data Structure', 'Default Data Structure' )
    DESCRIPTION "If clustered UPES queue used by this acitivity is undefined then it leads to execution server failure"
    START AUTOMATIC WHEN AT_LEAST_ONE CONNECTOR TRUE
    EXIT AUTOMATIC
    LAYOUT XPOS 100 YPOS 600
    NAME_POSITION XPOS 100 YPOS 525
    PRIORITY DEFINED_IN INPUT_CONTAINER
    PROGRAM 'Dummy'
    PROGRAM_EXECUTION_UNIT 'BADUPES.FMCSYS.FMCGRP'
    SYNCHRONIZATION NESTED
  END 'TESTUPES'
  CONTROL
    FROM 'LAUNCH' TO 'TESTUPES'
  CONTROL
    FROM 'TESTUPES' TO 'FINISH'
  DATA
    FROM SOURCE 1 TO 'LAUNCH'
    MAP '_STRUCT' TO '_STRUCT'
END 'SERTEST'
Back to top
View user's profile Send private message
jmac
PostPosted: Thu Mar 13, 2003 6:00 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Is there some reason why the UPES queue is not defined?

It seems to me that the solution to this is to make sure the queue is defined. In the beginning there was an issue with the Execution server crashing when the queue was not defined, but we're talking V3.2 here.

I know that the ES no longer dies for a synchronous UPES, but I can't say for sure about asynchronous, when the queue is not defined.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
TJW
PostPosted: Thu Mar 13, 2003 6:57 am    Post subject: Reply with quote

Novice

Joined: 11 Dec 2002
Posts: 16
Location: UK

The UPES queue is undefined because of an 'administrative error' (someone deleted the wrong queue).

As mentioned previously the ES dies whether the activity is synchronous or asynchronous.

An MQ2085 error would have enabled us to track the problem down much faster beacause the state of the UPES activity would have been recorded as InError. When the ES dies the workflow backs out to the previous activity, so it is not immediately obvious that the problem is with queue definitions.
Back to top
View user's profile Send private message
jmac
PostPosted: Thu Mar 13, 2003 7:23 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

TJW:

I am running V332 sp3 and when I start an instance whose first activity uses a Queue which is not existant the ES does not die, the Workitem goes into an "In Error" state with the following Error reason:

Error reason is: FMC32008E The program Dummy could not be started.

The system call MQPUT to OVISIT@FMCQM returned rc=2 and an error code of 2085.


I see nothing in the Readme of SP3 to indicate that this was new with SP3.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
TJW
PostPosted: Thu Mar 13, 2003 7:28 am    Post subject: Reply with quote

Novice

Joined: 11 Dec 2002
Posts: 16
Location: UK

I have just procured a test machine to see if the problem occurs on later service packs.

With 3.3.2 SP4, for both synchronous and asynchronous UPES, the ES no longer dies and the expected 2085 error is generated.

Problem solved.

Hopefully we can move to SP4 before any more admin. errors
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » [SOLVED]Clustered UPES causes execution server to die
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.