MQSeries Workflow 3.1.2 - Hotfix WF31A2UP.TAR.GZ - WF31N2UP.EXE - WF31O2UP.EXE ------------------------------------------------------------------------------ This is Hotfix #6. All hotfix packages are cumulative, that means this package contains the fixes of hotfix package #1, #2, #3, #4 and #5 as well. The following APAR is fixed with this package: IX87658, IX88220, IY00484 Important!!! ------------ 1. Hotfix #4 is required for MQSeries Workflow/390 2. Starting with hotfix #3 the following MQSeries Workflow definitions have been changed: a.) Alias queue definition for the trigger monitor input queue does no longer refer to the SYSTEM.DEFAULT.INITIATION.QUEUE, but to the FMCTRIGGER queue which has been introduced. If this new resource definition has been applied, the MQSeries trigger monitor has to be started for MQSeries Workflow to use this dedicated trigger monitor input queue. (e.g. runmqtrm -m FMCQM -q FMCTRIGGER). The new MQ resource definition will become active as soon as you perform one of the following steps: a.) Create a new queue manager using FMCZQDEF utility with option -o:i b.) Whenever you run FMCZQDEF with -o:d option and running RUNMQSC manually to replace the resources c.) Whenever you run FMCZQDEF with -o:d option and later on with the -o:x option Changes for Hotfix #6 06/17/99 ------------------------------ 1. Buildtime: Cannot draw a connector if part of the target activity is off paper The name or the exit condition of an activity may be off paper. In this case any connector cannot be attached to this activity. Platform: WinNT, Win95 2. Execution server: The _ACTIVITY field of a container does not contain the fully qualified name The data container member _ACTIVITY did not contain the fully qualified activity name (i.e. .) but only the activity name itself. In FlowMark V2.3 the fully qualified activity name was contained in member _ACTIVITY. Platform: independent of platform 3. Buildtime: Insert datastructure member error If you deleted a member of a datastructure, it was not possible in some cases to insert a new member. Platform: WinNT, Win95 4. Buildtime: MQWF Data default connector problems Data mappings and setting default values do not work correctly for activities which have both a data loop connector and a data default connector. The mappings from and to other activities work ok, but not the mappings or defaults for the data loop connector and for the data default connector. Platform: WinNT, Win95 5. Execution server: 'Resume Process' for a certain process leads to exception. The problem occurs when during the resumption of a process instance a block is restarted since the block activity's exit condition evaluates to false. Execution Server shuts down with an assertion. Related message = FMC31050E An error has occurred which has terminated processing. Error location = File=/home/fmcbld/lbld/v31_561/src/fmckdbg.cxx, Line=99, Function=fmckAssert(const char*,const char*,unsigned int) Error data = FmcAssertionException, Condition=*** Assertion failed in /home/fmcbld/lbld/v31_561/src/fmcdtgen.hxx(477): iterator != dict.end() or Related message = FMC31050E An error has occurred which has terminated processing. Error location = File=/home/fmcbld/lbld/v31_561/src/fmckdbg.cxx, Line=113, Function=fmckInvariant(const char*,const char*,unsigned int) Error data = FmcAssertionException, Condition=*** Invariant failed in /home/fmcbld/lbld/v31_561/src/fmcenabl.inl(166): _noFinishedEndActs <= _noEndActs Sample scenario for the problem: Have a running process instance with a running block that contains a running or checked-out program activity. Now process suspend is called. The process instance will become suspending, the block also, since the program activity is still executing. Now the execution server receives the program finish or checkin message from the client, i.e. the program activity becomes finished but no further navigation is performed since the process was in state supending, now in state suspended. When this process instance is resumed, the navigation must continue at the finished program activity by completing the block and evaluating the exit condition of the block activity. If the exit condition evaluates to false, the block activity will be restarted and the problem occurs. If the exit condition evaluates to true, the block activity will finish and control connectors leaving this activity will be followed. The problem would also not occur if the block becomes immediately suspended upon suspend request, i.e. skips the intermediate state suspending. The intermediate state suspendingis only reached when there are still running or checked-out activities contained in the block. Platform: independent of platform 6. Buildtime: Data mapping in sub block shows datastructures of parent block It is not possible to map data from sources or to sinks in blocks which are nested more than one level deep. That is, data mappings in Process.Block work ok, but data mappings in Process.Block.SubBlock do not. Platform: WinNT, Win95 7. ActiveX: CheckOut Workitem implementation is in error CheckOut of Workitem was not correctly implemented. The local ProgramData object was destructed at the end of the CheckOut method. This lead to unpredictable results. Platform: WinNT, Win95 8. ActiveX: Problems with Passthrough and CreateList in ExecuteService A Runtime error message was displayed after execution of Passthrough method Platform: WinNT, Win95 9. Intermittent PEA crashes The PEA intermittently crashes if the Operating System environment contains unexpected entries (i.e. not in the form keyword=value). This is now fixed. Platform: independend of platform 10.Execution Server: Assertion failure in fmcenwid.cxx line 731 During termination of a process instance the contained block activities are also terminated. During termination of a block activity the execution server (fmcemain) might fail with an assertion exception in file fmcenwid.cxx, line 731 (reported in error data of error FMC31050E in file fmcerr.log). Platform: independent of platform Changes for Hotfix #5 04/28/99 ------------------------------ 1. Execution server terminates with internal error FmcStream::ExcTruncated In special situations (depending on the process model and related runtime data) the execution server terminates with the internal error FmcStream::ExcTruncated. This internal error is logged in the error log (log accessible via administration utility or file fmcerr.log). Platform: independent of platform 2. Loop data connector in connection with a default data connector abends with an error Drawing a loop data connector and a default data connector for the same activity in the buildtime ends with an ODBC error. Platform: WinNT, Win95 3. Program Command Line Argument Problem with embedded spaces The program execution agent did not correctly reflect the quotes in the commandline. Platform: independent of platform 4. Problem with exporting deep The buildtime went in a loop if "export deep" was selected for exporting a FDL. Platform: WinNT, Win95 5. Wrong isolation level used during setup of runtime database. The database configuration tool FMCZDCDB didn't bind four of the packages with isolation level UR (Uncommitted Read). This resulted in a performance degradation. Platform: independent of platform Changes for Hotfix #4 03/22/99 ------------------------------ 1. Export deep doesn't export nested datastructures If "export deep" was selected in buildtime, nested datastructures have not been exported. This problem is solved with this hotfix. Platform: WinNT, Win95 2. Error in MQ listener when closing RTC When RTC is closed, the MQ TCP/IP-listener window reports the following error: 12/10/98 14:13:16 AMQ9208: Error on receive from host 'et (9.164.7.233)'. 12/10/98 14:13:16 AMQ9999: Channel program ended abnormally. This problem has been solved with this hotfix. Platform: WinNT, Win95 Changes for Hotfix #3 02/22/99 ------------------------------ 1. ForceFinish/Finish of an activity contained in a block might fail under certain conditions If the ForceFinish or Finish work item request results in a block restart scenario of the surrounding block (i.e. the exit condition of the corresponding block activity is not met and therefore the block is started anew), the excecution server might fail with an assertion (Finish: fmcecosa.cxx, line 1916, ForceFinish: fmcecosa.cxx, line 2173). Platform: independent of platform 2. Restart of block which contains block activity does not work If a block which contains other block activities is restarted, it fails with FmcTOMNotUniqueException. This unrecoverable exception leads to the server shutdown. (Error location: fmcdbact.sqx, Line=11855) In addition this defect caused database records to be not deleted. It is therefore strongly recommended to apply this hotfix package. Platform: independent of platform 3. AIX: Profile directory must not be hard-coded to /home/fmc A profile search algorithm has been added for AIX that searches for the machine profile fmcrc in /var/fmc/ if /home/fmc contains no profile or does not exist. Platform: AIX 4. Select random user for automatic program activities. If a set of users is resolved to execute an automatic program, the user that receives the activity should be selected randomly. Currently there is a bug, that selects always the same user. Platform: independent of platform Solved Problems in Hotfix #2 01/29/99 ------------------------------------- 1. Data mapping to Sink not saved, if there are several connectors If a sink had more than one incoming data connector the mapping of the data members was not saved. This problem is solved with this hotfix Platform: WinNT, Win95 2. Mapping from input to output container not implemented Mapping from input to output container of the same activity (default data mapping) was not supported in the Runtime, but could be specified in Buildtime and FDL. This now supported with this hotfix. Platform: independent of platform 3. Exception in methods 'NewWorkitem' and 'PersistentObject' of Workitem. When you use the ActiveX APIs 'NewWorkitem' and 'PersistentObject' of the object 'Workitem', you will get an exception without this hotfix. Platform: WinNT, Win95 4. Unable to map _PROCESS_INFO from source to activity Using of _PROCESS_INFO members in data container mappings resulted in error "26530: Translate of process '...' failed. See file 'XLATE.LOG' for details." This file contained the message "Mapping error: source member _PROCESS_INFO (...) do not match" This problem is fixed with this hotfix. Platform: independent of platform 5. CHECKED_OUT SQL filter value not correctly handled. Creating a worklist with STATE = CHECKED_OUT filter or using this filter in a query led to a wrong result (mostly empty results). This was due to the fact that the generated SQL statement queries for workitems were generated with state = 0 (undefined) instead of state = 64 (checked_out). With this hotfix the correct results are now returned. Platform: independent of platform 6. Notification from input container not exported to FDL. When the 'Notification from predefined members' checkbox on the Notification page of the Program Activity property sheet was checked in buildtime this was not exported to FDL. Platform: WinNT, Win95 7. FMCIBIE does not accept full OS2 PATH_AND_FILENAME PATH_AND_FILENAME for a OS/2 program object could only be specified using a simple name. A fully qualified path was rejected with a syntax error. With this hotfix the full path can be used. Platform: FDL definition independent of platform on which it is imported 8. Scoped data structure members not accepted in exit conditions Data members other than of the current activity or immediate preceeding activities were not accepted in exit conditions. Platform: WinNT, Win95 9. Enable trusted flag in buildtime A "Trusted" check-box is added to the Domain, System Group, System and Program property sheet in the Buildtime. Platform: WinNT, Win95 10.Block restart does not work in specific cases When an end activity which triggered the block restart was also a start activity of this block (e.g. scenario with only one activity in a block), the block restart would fail. Platform: independent of platform 11.In runtime client you cannot delete automomous subprocesses Automomous subprocesses could be deleted in the client, only the top level process could be deleted. When you apply this fix, the 'Delete' and 'Terminate' menu entries are also enabled for subprocesses. Platform: WinNT, Win95 Changes for Hotfix #1 01/11/99 ------------------------------ If you encounter one of the three problems listed below you can get an early fix if you install the provided hot fix. It is recommended to apply the hotfix only if you urgently need the solution for one of these problems: Note: The hotfix applies ONLY to MQSeries Workflow Version 3.1.2 1. DLLs as activity implementation cannot be loaded by the PEA on OS/2 Description: If you have defined an activity implementation as DLL (e.g. mydll.dll) the program execution agent cannot load this DLL. The hotfix solves this problem. Workaround: none Platform: OS/2 Component: Program execution agent Evaluation: Apply the hotfix if you intend to run OS/2 activity implentation DLLs. The hotfix must be applied to all workstations on which the PEA runs. 2. API calls ExmcGetSessionID() (FlowMark 2.3 compatibility API) and FmcjProgramID() return no sessionID/programID Description: These API calls do not return a sessionID/programID. This leads to problems when an activity implementation tries to access its container. Workaround: none Platform: All Component: PEA and API Evaluation: With MQSeries Workflow Version 3.1.2 an activity implementation gets a sessionID/programID from the PEA only if the program registration has set the TRUSTED attribute. Currently you cannot modify the TRUSTED attribute of a program in the Buildtime. You need to modify the FDL before importing it into the runtime database. You can define a default value for the TRUSTED attribute of all programs in the PROGRAM part of the reference FDL. For each program you can also specify an individual value (TRUSTED or NOT TRUSTED) in its program definition part. In addition to this configuration work the hotfix must be applied to all workstations on which the PEA runs. 3. Audit Trail writes starter of process instead of starter of activity for events 21007, 21011, 21032, 21041 Description: The userid in these audit events is not set correctly for automatic activities. It contains the ID of the user, who started (or created and started) the related process, and not the starter of the activity. The event affected are: 21007 ActivityStarted 21011 ActivityEndedNormally 21032 ActivityImplCompleted 21041 ActivityRestarted Workaround: none Platform: All Component: Execution server Evaluation: Apply the hotfix if you need the correct userIDs e.g. for your accounting. The hotfix must be applied to the workstation on which the execution server runs. 4. Data members which are not set are no more considered during data mapping If a data mapping is specified from one container to another, data members that are not set are no more mapped to the target container. E.g. if multiple containers are mapped to one target container only data members where a value is set are mapped in order to avoid that data members that are not set override valid values from other source containers. Installation on WinNT and OS/2 -- Server machine ------------------------------------------------ 1. It is recommended to save the original files first (see the list of replaced files below). 2. Stop all running MQSeries Workflow processes (including the listener and trigger monitor). The FMCQM queue manager can remain running. 3. Unpack the file WF31N2UP.EXE (WinNT) or WF31O2UP.EXE (OS/2) with the following syntax: wf31n2up /D x:\path (where x:\path is a temporary directory to which the files are unpacked) 4. The hotfix is applied by doing the following: a. Copy the EXE and DLLs in the "bin" subdirectory of your MQSeries Workflow installation ( e.g. FMCWINNT\bin ) with the ones provided with this hotfix. b. Copy the *.bnd files to the "bnd" subdirectory of your MQSeries Workflow installation. c. Copy the *.mqs files to the "mqs" subdirectory. 5. Issue the command: fmczdcdb -o:b to bind the changed packages. Optionally you can perform the following two steps: 6. Replace the existing MQSeries queue definitions by running the following commands: a. fmczqdef -o:d This rebuilds the customized queue definition files: fmczques.mqs and fmczcltc.mqs b. runmqsc hotfixq.log This creates the new queue definition for the trigger monitor using the hotfix file fmccques.mqs c. runmqsc hotfixc.log Create the channel definitions using the hotfix file fmcccltc.mqs file 7. Now start the listener as usual. Start the trigger monitor using the command: runmqtrm -m FMCQM -q FMCTRIGGER and then start the Workflow servers. Installation on WindowsNT and Windows95 client machines ------------------------------------------------------- 1. Back up existing files. 2. The hotfix is applied by doing the following: a. Copy the EXE and DLLs in the "bin" subdirectory of your MQSeries installation ( e.g. FMCWINNT\bin ) with the ones provided with this hotfix. b. Do not copy the *.bnd and *.mqs files 3. If you have created a new AMQCLCHL.TAB file on the server, make sure you copy this to the client. 4. Register all .OCX files with the following command: REGSVR32 ocx-name.ocx Note: You do not have to register the FMCB*.OCX files if you didn't install the Buildtime component. Installation on AIX ------------------- You can use the shell script 'fmchotfix', which is provided on our webpage, to unpack and copy the files of this hotfix into their proper locations: 1) First stop all running MQSeries Workflow processes 2) As root, perform the command 'slibclean'. 3) Copy the distribution file wf31a2up.tar.gz into a subdirectory with at least 160 MB free space. 4) Run the installation script: fmchotfix wf31a2up.tar.gz You have the option of saving the original files first (see the list of replaced files below). In this case specify a backup directory as second parameter; the backup directory must already exist and provide enough free space (about 200 MB) for all replaced files: fmchotfix wf31a2up.tar.gz /existing/backup/directory 5) The shell script copies all files into their proper locations (as explained below in more detail). As an updated DB2 bind file is included in this package, the following step has to be performed now: fmczdcdb -o:b Use the userid 'fmc' or any other userid with DB owner rights. Optionally you can perform the following two steps: 6. Replace the existing MQSeries queue definitions by running the following commands: a. fmczqdef -o:d This rebuilds the customized queue definition files: fmczques.mqs and fmczcltc.mqs b. runmqsc hotfixq.log This creates the new queue definition for the trigger monitor using the hotfix file fmccques.mqs c. runmqsc hotfixc.log Create the channel definitions using the hotfix file fmcccltc.mqs file 7. Start the trigger monitor using the command: runmqtrm -m FMCQM -q FMCTRIGGER and then start the Workflow servers. If you choose not to use the script fmchotfix, do step 1, 2, 3, and 5 (,6,7) as described above, and replace step 4 with: 4-manually) * As root, unpack the file wf31a2up.tar.gz by using the command gzip -dc wf31a2up.tar.gz | tar -vxf - * Decide whether to backup the original files prior to copying the hotfix files! * Copy the libfmc*.a files into the directory /usr/lpp/fmc/lib * Copy the fmc*.mqs files into the directory /usr/lpp/fmc/mqs * Copy the fmc*.bnd file into the directory /usr/lpp/fmc/bnd * Copy the remaining fmc* files into the directory /usr/lpp/fmc/bin * Check that /usr/lpp/fmc/bin/fmcemain still has the correct file modes and ownership as installed by the original 3.1.2 GA installation: cd /usr/lpp/fmc/bin ls -l fmcemain -rwsr-x--- fmc staff .... fmcemain The correct modes can be created with chmod 750 fmcemain chown fmc:staff fmcemain chmod u+s fmcemain * Link two new files into /usr/bin: ln -s /usr/lpp/fmc/bin/fmczddba /usr/bin ln -s /usr/lpp/fmc/bin/fmczdmqa /usr/bin This Hotfix package replaces the following files: ------------------------------------------------- WinNT, Win95: ------------- fmc4api.dll fmcacore.dll fmcamain.exe fmcautil.exe fmcbcdmp.ocx fmcbcimp.exe fmcbdbbe.dll fmcbdcdb.exe fmcbdiag.ocx fmcbgrph.dll FMCBHKOR.CNT FMCBHKOR.HLP fmcbicoh.dll fmcbicon.ocx fmcbmain.exe fmcbmodl.dll fmcbprop.ocx fmcbpsht.dll fmcbvbci.ocx fmcccltc.mqs fmccdclt.mqs fmccdqus.mqs fmccfmlc.dll fmccfmls.dll fmccmain.exe fmccques.mqs fmcdatom.dll fmcdbacc.dll fmcdbprc.bnd fmcdconn.bnd fmcdetom.dll fmcditom.dll fmcdtom.dll fmcdttom.dll fmcecimp.dll fmcecoif.dll fmcecstb.dll fmcemain.exe FMCESTPR.dll fmcfbfdl.dll fmcfbfdn.dll fmcfbtem.dll fmcfcore.dll fmcfcorn.dll fmcfffdl.dll fmcfffdn.dll fmcibie.exe fmcicmd.dll fmcicore.dll fmciedb.dll fmcifdl.dll fmcifdln.dll fmciidb.dll fmcimina.exe fmcimins.exe fmcimmgr.dll fmcimref.bnd fmcimrim.exe fmciomod.dll fmciostf.dll fmciotop.dll fmciqry.dll fmciqryn.dll fmcixlat.dll fmcjdadm.dll fmcjdapc.dll fmcjdcba.dll fmcjdcbr.dll fmcjdcom.dll fmcjdcon.dll fmcjdint.dll fmcjdrun.dll fmckernl.dll fmckernn.dll fmckext.dll fmckmenu.cat fmcktrwr.exe fmcky21e.dll fmcky21n.dll fmcmai.dll fmcmcli.dll fmcmdata.dll fmcmstru.dll fmcmsvr.dll fmcn6bna.exe fmcn6bni.exe fmcn6bnp.exe fmcn6bnr.exe fmcn6cc.ocx fmcn6fc.ocx fmcn6ico.dll FMCN6KOR.CNT FMCN6KOR.DLL FMCN6KOR.HLP fmcn6lpd.ocx fmcn6pc.ocx fmcn6ptl.ocx fmcn6rtc.exe fmcn6sc.ocx fmcn6wc.ocx fmcnshow.exe fmcpbase.dll fmcpqecs.dll fmcpqecs.map fmcpqefl.dll fmcpqefl.map fmcpqery.dll fmcpqery.map fmcpreso.dll fmcsgnrl.dll fmcsmain.exe fmcspstb.dll fmcssvrf.dll fmcxapi.dll fmcxdll.exe fmcxpea.exe fmcxpsd.exe fmcyctnn.dll fmcyctnr.dll fmczbstr.exe fmczchk.exe fmczdbsi.dll fmczdcdb.exe fmczdgen.exe fmczfmig.exe fmczienu.exe fmczm311.exe fmczm312.exe fmcznvg.exe fmczqdef.exe fmczrgn.dll fmcztpg.exe OS/2: ----- fmc4res.dll fmcacore.dll fmcautil.exe fmcccltc.mqs fmccdclt.mqs fmccdqus.mqs fmccfmlc.dll fmccfmls.dll fmccques.mqs fmcdatom.dll fmcdbacc.dll fmcdbprc.bnd fmcdetom.dll fmcditom.dll fmcdtom.dll fmcdttom.dll fmcecimp.dll fmcemain.exe FMCESTPR.dll fmcfbfdl.dll fmcfcore.dll fmcfffdl.dll fmcibie.exe fmcicmd.dll fmciedb.dll fmcifdl.dll fmciidb.dll fmcimref.bnd fmciomod.dll fmciqry.dll fmcixlat.dll fmcjdadm.dll fmcjdapc.dll fmcjdcbr.dll fmcjdcom.dll fmcjdcon.dll fmcjdint.dll fmcjdrun.dll fmckernl.dll fmckext.dll fmcktrwr.exe fmcmai.dll fmcmcli.dll fmcmdata.dll fmcmstru.dll fmcmsvr.dll fmcpqecs.dll fmcpqefl.dll fmcpqery.dll fmcpreso.dll fmcssvrf.dll fmcxapi.dll fmcxdll.exe fmcxpea.exe fmcyctnr.dll fmczbstr.exe fmczchk.exe fmczdcdb.exe fmczdgen.exe fmczfmig.exe fmczm311.exe fmczm312.exe fmczqdef.exe fmczrgn.dll AIX: ---- fmcautil fmcccltc.mqs fmccdclt.mqs fmccdqus.mqs fmccques.mqs fmcdbprc.bnd fmcemain fmcibie fmcxdll fmcxpea fmcxpsd fmcxspea fmczbstr fmczchk fmczchk.htm fmczcmst fmczdcdb fmczddba fmczdmqa fmczemst fmczfmig fmczm311 fmczm312 fmczqdef fmczsmst libfmcacore.a libfmccfmlc.a libfmccfmls.a libfmcdatom.a libfmcdbacc.a libfmcdetom.a libfmcditom.a libfmcdtom.a libfmcdttom.a libfmcecimp.a libfmcfbfdl.a libfmcfcore.a libfmcfffdl.a libfmciedb.a libfmcifdl.a libfmciidb.a libfmciomod.a libfmcixlat.a libfmcjdadm.a libfmcjdapc.a libfmcjdcba.a libfmcjdcbr.a libfmcjdcom.a libfmcjdcon.a libfmcjdint.a libfmcjdrun.a libfmckernl.a libfmckext.a libfmcmstru.a libfmcpqecs.a libfmcpqefl.a libfmcpqery.a libfmcpreso.a libfmcssvrf.a libfmcxapi.a libfmcyctnr.a