Making Sure DIS Is Running

Locate the DIS service in the Windows management console for Services. Observe whether it is running or not.

If it is not running, try to Start it (right-click, Start)

DIS service won't start

Problem
The DIS  service gives a "the service started and stopped" error when I start it.
Resolution
Correct the database connection in Program Files\Jenzabar\ICS.NET\Portal\bin\DIS.Service.exe.config (to match that found in Portal\Web.config)

DAT file stuck in processing

Problem
A .DAT file is permanently stuck in "processing", with 0 records  processed. The windows event log shows an error: "Unable to read  the status from the parser program" error for the DIS.
Resolution
1. Correct the database connection in Program Files\Jenzabar\ICS.NET\Portal\bin\DIS.Parser.exe.config
2. Copy the .dat file from Program Files\Jenzabar\ICS.NET\Portal\bin\DIS\Current\ to \DIS\Queued\

Re-posting DAT Files

Any time the DIS encounters an error while processing a DAT batch file, the whole batch will be considered a failure and must be re-posted after the error has been resolved.

Error: Sequence is out of order

The message "Sequence is out of order" is commonly produced when the DIS encounters an error and fails. This failure is not communicated back to the ERP system immediately because the delayed nature of batch processing means the ERP API process is no longer waiting for a response. The next "conversation" between the sending process and the DIS takes place when the next batch is sent to the DIS. At that point, the DIS can communicate the news about the failure, but it does so through the "Sequence is out of order" message. This indicates that the last successful batch was not the number immediately preceding the currently posted batch, indicating an intervening batch was in error. Not only must any error batch be fixed and re-posted, the most recent batch must also be re-sent in sequence after the error is resolved.

For example:

  •  Batch 1000 succeeds
  •  Batch 1001 encounters an error during processing
  •  Batch 1002 is sent and immediately receives the "Sequence is out of order" with a note that the last successful batch was 1000

Resolution:

  1.  Fix the error in batch 1001
  2.  Re-post batch 1001
  3.  Re-post batch 1002

For CX

1. Navigate to the Data Import Transactions Portlet.

2. Note the Sequence Number of the most recently failed data import transaction. 


3. Log into CX

# cd text/jenzabar # rm 21454.pst 21454.pst: 644  mode ? (y/n) y # menu [h]-System Management [f]-JICS API [c] Upload Single Data File +---------------------------------------------+ |        UPLOAD SINGLE DATA FILE              | |                                             | |Data File......................[21454.dat  ] | +---------------------------------------------+  +----------------------------------------------------+ |  OUTPUT PARAMETERS                SCHEDULING       | |                                                    | |Mode...                         Time...[NOW  ]      | |File...                         Day....             | |                                                    | |                                Background... N     | +----------------------------------------------------+

Note: Sometimes the ownership of the .pst file generated when the .dat file was first posted means the user you are logged in as cannot append to the file and the Upload of the .dat file fails. To resolve this, move the existing .pst file (e.g. mv 21454.pst 21454-1.pst) out of the way so you can re-post the file.

4. Check the Data Import Transactions log.  If this re-post is successful, then Engage the Jenzupload Process:

# menu [h]-System Management [f]-JICS API [d]-JICS API Maintenance [a] Engage API Process

Note: Sometimes there remains a jenzpost.ip (Jenzpost in-progress) file left over from a previous failure. If you are sure there is no jenzpost or jenzupload process running currently (e.g. You get no results from a ps -ef | grep jenz), then you can answer the prompt with a "y"  + Enter to allow the Engage API command to succeed.

For EX

  1.  Stop the Jenzabar EX Web service on the web server
  2.  Go into API Batch Control (Web Administration module: Task --> Web Administration --> API --> API Batch Control) for 7.2 (Settings & Utilities - CRM General --> API Batch Control). 
  3.  Select the most recent batch and click Repost Batch. The row will then disappear from the list.
  4.  Go to UI Configuration (Web Administration module: Task --> Web Administration --> Configuration --> UI Configuration) for 7.2 (Settings & Utilities - CRM General --> UI Configuration) and choose category Jenzabar from the drop-down. 
  5.  Find the row for batch_number. This should be changed to the number of the LAST SUCCESSFUL batch (found in the DIS on JICS). Click Save.
  6.  Start the Jenzabar EX Web service on the web server. The batch will resend after exactly 60 seconds. The entire failed batch will be resent along with any data that has been changed since the failed batch.

Remove a Stuck DAT File

There are two kinds of "stuck" DAT files to deal with:

  •  Stuck in Current - stuck while processing
  •  Stuck in Queued - stuck while waiting to be processed

DAT File Stuck In Current

If you have a file listed in the Data Import Transactions portlet that appears to be "Processing" for what seems to be too long, it may be stuck in the Current(ly processing) stage: DISImportLogStuckFileProcessing.png

  1.  First check to see if there is a .DAT file in Program Files\Jenzabar\ICS.NET\DIS\Current (there should be no more than one file in this folder)
  2.  If there is not a .DAT file in Current, then skip to DAT File Stuck In Queued
  3.  If there is a .dat file in Current, then continue...
  4.  Watch the most recent .LOG file in Program Files\Jenzabar\ICS.NET\DIS\Logs to see if it is increasing (by refreshing the view a few times) 
  5.  If it is increasing then the DIS is not really stuck but is only slow and so you should let it complete its processing
  6. If the .LOG is stuck at the same file size then
    1.  Stop the DIS service and start it again. 
    2.  Check the .LOG file again to see if it grows.
    3.  If it begins to grow, you should be done -- wait for the batch to complete processing
  7.  If none of these efforts lead the log file to grow, then continue...
  8.  Stop the DIS service again
  9.  Move the .DAT file from the Current directory to Queued directory.
  10.  Start the DIS service. 
  11. The .DAT file should then:
    •  automatically move to Current where the DIS processes the file
    •  then move out of Current and into the Parsed directory when it is finished processing
    •  the Data Import Transactions portlet should show the batch as complete

DAT File Stuck in Queued - TotalRecords Error

If you are getting the following error on the Data Import Transactions portlet that will not go away, you may have DAT file "stuck" in the Queued folder.

Property accessor 'TotalRecords' on object 'Jenzabar.ICS.ImportLog' threw the following exception: 'Object reference not set to an instance of an object.'

Step 1 - Check the Filesystem

When a DAT file is posted to the DIS process, the DAT file is saved with a new filename (a GUID) in Program Files\Jenzabar\ICS.NET\DIS\Queued.  Navigate to this directory and verify that there is a file there. 

  •  If there is no file there, STOP - something else went wrong. 
  • If there is a file there:
    1. Check to see that the DIS service is running
      •  If not running, Start it
      •  If running, Restart it
    2. Check to see if the DAT file is still in the Queued folder (you may need to refresh)
      •  If it is not there, you're done!
      •  If it is still there, make note of the GUID in the filename and continue...

Step 2 - Clean up SQL Server

When the DIS process saves the DAT file to the filesystem, it uses the guid serial from the ICS_NET.DIS_ImportLog for the filename.  We need to remove the record for the "stuck" DAT file.  Use the following query in MS SQL Server Management Studio to view the last few records:

Use ICS_NET SELECT TOP (10) ImportLogID, StartTime, EndTime, Status, SequenceNumber, CurrentRecord, TotalRecords, ErrorCount FROM   DIS_ImportLog ORDER BY SequenceNumber DESC

The ImportLogID of the top record should be the same as the filename you found in Step 1.  Additionally, it should have no EndTime: DISImportLogStuckFileQuery.png

  •  If it does have an EndTime, STOP - something else is wrong. There should not be an EndTime value while the file is still in Queued. Contact Support. 
  • If it does not have an EndTime, it is a stuck record, so delete it:
    1.  Make a note of the SequenceNumber of the stuck batch (388 in the screenshot above)
    2.  Copy the ImportLogID to the clipboard
    3.  Open a New Query window in MS SQL Server Mgmt Studio using the correct database and paste the ID into the window
    4.  Copy/paste the following query into the window using the correct ID instead of the example, then Execute it:
DELETE FROM DIS_ImportLog WHERE ImportLogID = '627AF35D-4641-4A67-9C27-21C61A21A39D'

Step 3 - Clean up the Filesystem

Go back to Program Files\Jenzabar\ICS.NET\DIS\Queued and delete the "stuck" DAT file.

Step 4 - Test

Retry loading the Data Import Transactions portlet.  It should no longer show an error.

Step 5 - Repost the File

Follow the steps in the first section above (Re-posting DAT Files) for the stuck batch file and any batches that may have been generated after it.

Troubleshooting Errors

If you need to troubleshoot errors other than Stuck DAT Files, you need to check the DIS logs:

  1.  Navigate to logs folder: Program Files\Jenzabar\ICS.NET\DIS\Logs
  2.  Sort by Last Modified descending
  3.  Open the top most (most recent) .log and .error files
  4.  Fix the errors in the order that appear in the .log file (top to bottom)

Error in Persist

If you see the error message "Error in persist", there would appear to be a problem with JICS data, not necessarily ERP data.

See Data Import Service Error in Persist