pub:workwithmergeengine
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
pub:workwithmergeengine [2014/06/18 11:09] – [Configuring the Engines to Start and Stop] ken | pub:workwithmergeengine [2021/09/28 11:45] – [Options] kkramer | ||
---|---|---|---|
Line 25: | Line 25: | ||
| | ||
| | ||
- | | + | |
Opt Engine | Opt Engine | ||
| | ||
Line 43: | Line 43: | ||
- | ==== Columns | + | |
- | + | ||
+ | === Logging and Archive Status | ||
+ | |||
+ | The status display shows the current status of the engine. | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Note: | ||
+ | **Logging** is a debugging tool. ***ON** enables engine logging and each engine process will record an entry in a data base file named FRMLOGF. Normally this value can be set to ***OFF**. | ||
+ | **Hold Archive** ***ON** places the resulting FMGLASER entries on hold (HLD) in the designated Archive output queue. An ***OFF** designation leaves the entries with a ready (RDY) status. | ||
=== Engine Status === | === Engine Status === | ||
Line 91: | Line 106: | ||
**Note:** If the Thread Engine is used, an archive output queue must be specified. | **Note:** If the Thread Engine is used, an archive output queue must be specified. | ||
+ | === Option 18=Start (FMC0459) === | ||
+ | This is fundamentally identical to selecting with Option 8, but provides the ability to retain the originating spool file user attributes for the resulting output. | ||
===== Add / Maintain Merge Engine ===== | ===== Add / Maintain Merge Engine ===== | ||
Line 140: | Line 157: | ||
* **Engine Status**: Current status of the engine. | * **Engine Status**: Current status of the engine. | ||
* **Custom Command**: Command to invoke a [[customengines | custom engine]]. | * **Custom Command**: Command to invoke a [[customengines | custom engine]]. | ||
- | * **Engine Type**: ***SERIAL** for normal processing and ***AGGREGATE** to perform aggregation | + | * **Engine Type**: ***SERIAL** for normal processing and **[[# |
* **Test Type:**: ***FIRST** to process just the first target matched or ***ALL** to process every matching target. | * **Test Type:**: ***FIRST** to process just the first target matched or ***ALL** to process every matching target. | ||
Line 219: | Line 236: | ||
===== Aggregation options ===== | ===== Aggregation options ===== | ||
- | In iDocs 6.5 the Aggregation Engine was added. | + | In iDocs 6.5 the Aggregation Engine |
+ | |||
+ | The aggregating | ||
< | < | ||
- | | + | 4/ |
- | | + | |
- | Select Form to Combine/ | + | |
- | | + | |
- | | + | |
- | Sweep the outputs when | + | Data Queue . . . . . . : SIGMAENGDQ Dataque Library: QUSRSYS |
- | AND/OR Field | + | |
- | *USRDTA | + | |
- | | + | Originating |
- | | + | Prc Out Queue Library |
- | | + | |
- | | + | |
- | | + | |
- | More... | + | |
- | | + | |
- | | + | |
- | | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | More... | ||
+ | | ||
+ | </ | ||
+ | |||
+ | By creating the engine as Engine Type Aggregate, you can utilize option **F8** to enter the Aggregate Settings. | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | User program to check aggregate condition. | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | F4=Prompt | ||
+ | |||
+ | | ||
</ | </ | ||
- | The aggregating engine operates by accumulating output until the trigger, as defined on the screen above, | + | |
+ | |||
+ | **F13** will assist the user in creating a program along with the parameters | ||
+ | |||
+ | < | ||
+ | /*¹iDocs sample user program for Aggregate engine· | ||
+ | ¹Once this program is specified in iDocs aggregate engine, | ||
+ | ¹iDocs will call it to check if the aggregate criteria is matched or not, + | ||
+ | ¹if TRUE then &RETURN is ' | ||
+ | ¹ + | ||
+ | ¹Input parameters: | ||
+ | ¹ - & | ||
+ | ¹ - & | ||
+ | ¹ - & | ||
+ | ¹ - & | ||
+ | ¹ - & | ||
+ | ¹ + | ||
+ | ¹Output parameters: | ||
+ | ¹ - & | ||
+ | | ||
+ | */ | ||
+ | | ||
+ | &JOBNBR & | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | /*¹If &RETURN is ' | ||
+ | ¹ and iDocs will aggregate the PCL files into 1 PCL·*/ | ||
+ | | ||
+ | |||
+ | </ | ||
===== Daisy Chaining Engines | ===== Daisy Chaining Engines | ||
Line 329: | Line 414: | ||
* The **FMGBATCH** subsystem can be created from menu FMGUTILITY, option 1. The default configuration is limited and the configuration should be reviewed by a qualified system administrator. | * The **FMGBATCH** subsystem can be created from menu FMGUTILITY, option 1. The default configuration is limited and the configuration should be reviewed by a qualified system administrator. | ||
* **Never call** the iDocs engine from the startup program, instead submit it with SBMJOB. If you call it the startup program will never progress beyond the call statement and thus never complete. Additionally CALLing the engine will cause it to run under the user profile running the startup program (user QSYS) which causes problems. iDocs engines will run in any properly configured batch subsystem. | * **Never call** the iDocs engine from the startup program, instead submit it with SBMJOB. If you call it the startup program will never progress beyond the call statement and thus never complete. Additionally CALLing the engine will cause it to run under the user profile running the startup program (user QSYS) which causes problems. iDocs engines will run in any properly configured batch subsystem. | ||
- | * **Program | + | * Program |
* The **one parameter** to the FMC0462 or FMC0460 call should be the name of the engine in upper case. | * The **one parameter** to the FMC0462 or FMC0460 call should be the name of the engine in upper case. | ||
* The **job name** should be the engine name in upper case. | * The **job name** should be the engine name in upper case. | ||
Line 344: | Line 429: | ||
The easiest way to create entries is with the Utility menu. This option will generate JOBSCDE entries. You can them view the entries (WRKJOBSCDE) and modify them as needed. | The easiest way to create entries is with the Utility menu. This option will generate JOBSCDE entries. You can them view the entries (WRKJOBSCDE) and modify them as needed. | ||
- | Examples: To start and end a Data Queue engine named ENGINE1 in library IDOCS: \\ | + | **Examples:** To start and end a Data Queue engine named ENGINE1 in library IDOCS: \\ |
To start: | To start: | ||
To end: CALL PGM(IDOCS/ | To end: CALL PGM(IDOCS/ | ||
Line 379: | Line 464: | ||
The user profile should have access to the iDocs library:\\ | The user profile should have access to the iDocs library:\\ | ||
- | **GRTOBJAUT OBJ(FMG) OBJTYPE(*LIB) USER(IDOCS) AUT(*ALL)**\\ | + | **GRTOBJAUT OBJ(**//iDocs library//**) OBJTYPE(*LIB) USER(IDOCS) AUT(*ALL)**\\ |
- | **GRTOBJAUT OBJ(FMG/*ALL) OBJTYPE(*ALL) USER(IDOCS) AUT(*ALL)** | + | **GRTOBJAUT OBJ(**//iDocs library// |
+ | |||
+ | You may use the below command to __permanently__ grant the required permissions for iDocs:\\ | ||
+ | **CHGAUT OBJ('/ | ||
If there are no object authority issues with iDocs you might want to disable adopted authority on the programs:\\ | If there are no object authority issues with iDocs you might want to disable adopted authority on the programs:\\ | ||
- | **CHGPGM PGM(FMG/*ALL) USRPRF(*USER) USEADPAUT(*NO)** | + | **CHGPGM PGM(**//iDocs library// |
==== Job Description Settings ==== | ==== Job Description Settings ==== | ||
Line 403: | Line 491: | ||
< | < | ||
+ | ===== Engine Troubleshooting Q & A ===== | ||
+ | **Q.** When I submit the engine it prompts me for the job queue. What is this?\\ | ||
+ | **A.** A job queue is an IBM i object that contains entries for jobs that are waiting to be processed by the system. | ||
+ | |||
+ | **Q.** When I submit the engine it runs normally, but afterwards no one else can process their jobs submitted to batch?\\ | ||
+ | **A.** In this case the engine has been submitted to a single thread job queue that can only process a single job at a time. The solution to this bottleneck is to submit the engine to a multi thread job queue. Create one or use a pre-configured multi thread job queue such as QS36EVOKE. | ||
+ | |||
+ | **Q.** Polling Engine starts for 60 seconds and ends normally without processing any entries?\\ | ||
+ | **A.** Check each originating output queue and insure that they all still exist on the system. | ||
+ | |||
+ | **Q.**The engine runs and the original spool fie is successfully copied to the archive out queue, yet the merged spool file disappears.\\ | ||
+ | **A.** The writer may not be responding correctly. Follow these steps to fix the writer: end the writer, vary off the device, vary on the device with a reset, restart the writer. If this doesn' | ||
+ | |||
+ | **Q.** After the engine is submitted, it ends several days later in error?\\ | ||
+ | **A.** There could be numerous reasons why the engine has ended in error after successfully running without interruption. Most common is that the engine has been running for many weeks accumulating system resources and job structures. **It is recommended that an engine be stopped and restarted weekly.** Other specific causes: | ||
+ | * A lock on the engine record has occurred from a backup routine. Its best to make a single backup of the iDocs library whenever the definitions have been added or altered and set it aside, then remove the iDocs library from the backup definition. | ||
+ | * An engine will end abnormally if the job's message queue has filled up. This could be the case if the engine has been running for weeks. To remedy this type of abnormal end change the system value QJOBMSGQFL value to *WRAP. This will prevent the job queue from filling up. CHGSYSVAL SYSVAL(QJOBMSGQFL) VALUE(*WRAP). | ||
+ | * If the engine has been running for weeks, it could end abnormally if it exceeds the maximum printer output files that can be created per job. Support was added to V5R1M0 to allow a job to create up to 999,999 spooled files. To remedy this type of abnormal end change the IBM i system value QMAXSPLF value from the default value of 9999 to the maximum of 999999. CHGSYSVAL SYSVAL(QMAXSPLF) VALUE(999999). | ||
+ | * If the engine is processing a large volume of spool files there could be an abend due to ' | ||
+ | |||
+ | Note: You must have *ALLOBJ and *SECADM special authorities to change system values. A change to the system value takes effect immediately; | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
---- | ---- |
pub/workwithmergeengine.txt · Last modified: 2023/09/19 13:35 by kkramer