Inconsistent Elliott Error on Terminal Server

Q - We occasionally run into an issue with our terminal server where Elliott crashes after entering the username/password.

After clicking on the shortcut, it prompts for the username / password. After clicking OK, it crashes. We are confused because there are users already using Elliott 8 on the TS, but new users cannot log in.  From my past experience, if I reboot the terminal server (not the Elliott PSQL server), this error will be corrected.

Attached is a screenshot of the faulting module, which is MSVCRT20.dll (see sample message below):

EL800.EXE has stopped working 

Problem signature: 
Problem Event Name: APPCRASH 
Application Name:  EL800.EXE 
Application Version: 0.0.0.0 
Application Timestamp: 5570b0eb 
Fault Module Name: MSVCRT20.dll
Fault Module Version: 2.11.0.0 
Fault Module Timestamp: 5643d49b 
.....


I have verified that MSVCRT20.dll is in the Elliott7/Bin folder. We have added all of the Elliott 8 executables to the DEP safe list already, but you cannot add .DLL files.

Since all other users not on the terminal server do not have this issue, we know that it must have something to do with the terminal server and some Elliott files, but we do not know what.  As a matter of fact, the users who are currently running on the terminal server can continue to work in Elliott.  It is just the new users logging on to the terminal server that have this issue.

What can we do to diagnose the problem?

A - This is a known issue with Microsoft Terminal Server.

The Cause

You can see additional information of this problem with the following URL:

          https://support.microsoft.com/en-us/kb/2536487

Base on our support experience with our own users base, this issue is applicable to Windows Server 2008, Windows Server 2008 R2, and Windows Server 2012. We are not sure if it is still applicable to Windows Server 2016 due to limited installation base of our users with that version. There's no hot fix from Microsoft for this problem at this moment.  We are not sure if Microsoft will eventually fix this issue.  The following are additional articles that discuss this issue:

         http://www.bearnakedcode.com/2011/06/win-2008-terminal-server-network-app.html

         https://social.technet.microsoft.com/Forums/windowsserver/en-US/d7bab29e-2bce-4785-9abb-259cff3a153e/process-crash-because-of-unloaded-dll-caused-by-disconnection-of-another-terminal-service-session?forum=winserverTS

The nature of the issue is related to how the Microsoft Terminal Server handles open DLL files from a network shared folder. The FCB (File Control Block) belongs to the user instead of the system.  When the user who owns the FCB logs out from the server in certain conditions, the FCB can be orphaned.  As a result, other users may get errors when try to access the DLL file.

How to Confirm If This Is Indeed The Cause?

To know for sure if the above KB article is the root cause for your problem on Terminal Server, you need to use a utility called "Process Monitor" which is free from Microsoft.  You can search for Windows Sysinternals and download the utility.  Procmon (Process Monitor) is one of them.  The following is an example of how we can use Process Monitor shows that when EL800RV.EXE try to load a DLL in Elliott Bin folder and receive the "NETWORK ERROR".  This is the confirmation of this problem. See sample screen below:


Unfortunately, it is quite complicated to use Procmon. If you don't have the necessary expertise to use this utility, you will need other easier methods as outline in the next section:

Other Common Symptons For This Problem

(1) If you can get all other users on the terminal servers to close Elliott and logout their Windows session.  Then, as the sole user on the terminal server, try the same Elliott application again.  If the Elliott problem goes away, then we know for sure this is the cause.  (2) If you can't get all other Elliott users to logout for some reasons, then you can reboot the terminal server.  After the reboot, if Elliott start to work correctly on the terminal server, then it is likely this is the cause, but we can't be sure 100%.

There Are Various Messages for This Same Problem

For Elliott users on the terminal server, when they try to startup Elliott, they may experience Elliott failing at the startup at the same position as indicated in this article. The messages may be different, depend on which DLL get affected.  They may simply indicate that EL700.EXE, EL800.EXE or an related EL800*.EXE has stopped working.  It could be message indicating that it has problem loading some DLL files.  Here is an example:

**********************************************************
Elliott was unable to load the following module:

GUILIB32.DLL

Elliott will terminate now...
**********************************************************  


Sometime, the problem is less intrusive and only happen when you try to print bar code on the document.  The following is an example:

Load error: file 'BC_DrawBarCode'
error code: 173, pc=0, call=46, seg=0


Error 173 simply means the particular file is not found.  In this case, Elliott is trying to load the bar code DLL to render the barcode image.  The DLL is in the Elliott root or bin folder.  Elliott is not able to find this file due to bogus NETWORK ERROR as outlined in previous discussion.  

In Elliott V8.x, it is common to see error with displaying reports with Elliott Report Viewer. See example below:


With this particular problem, you can display the report in notepad which you will by pass the error temporarily.

There are many faces to this same problem.  In all these cases, at its root, Elliott has problem loading a DLL file from the Elliott mapped network drive which is caused by Microsoft Operating system bug as mentioned in the previous article.

Solutions

Generally speaking, when you encounter this problem, you can resolve this issue by doing one of the three methods below:

  1. Ask all users on this Terminal Server to exit Elliott.  Once all users are out of Elliott, then ask users to come back into Elliott again.
  2. If some terminal server users can not be contacted.. Especially, they are disconnected, you can log them out by bringing up the task manager on the server console.  In the User tab, highlight the disconnected users and choose to "Logoff".  See sample screen below.
  3. General speaking, the above two steps should solve the problem.  If not, reboot the Terminal Server.


We have tried to replicate this issue in-house by doing various tests with login/logout combinations, but we can't duplicate this issue. However, we are seeing this problem being reported from our users.  Generally speaking, after our users adopt the following solutions, this problem is dramatically improved, if not resolved totally:

(1) Ask Users to Logout of Elliott When Done
In one incident, the user has a terminal server for overseas users to access Elliott.  We noticed many of their overseas users do not logout of Elliott when done.  This is understandable because it takes time for these users to logon to the Terminal Server, then it takes time for their Elliott session to start up.  These users felt that if they kept their sessions open by just disconnect (by clicking on the "x" of their terminal server sessions,) then when they reconnect again, they can skip all the startup process and get to work in Elliott quickly.  Unfortunately, this practice is not desirable if you are ecountering this problem described in this article.

Therefore, we asked their US office to monitor the terminal server overseas users at the time when they are not supposed to be in the system. Then report those users to the president of the company.  After the president of the company had a conversation with those users who didn't logout of Elliott when done, this problem totally went away.

It is important that Elliott users should logout at night time for many reasons.  This is just one of the reason. You could, for example, implement a procedure to ask the first person that arrive the company to start up Elliott as the first thing in the morning, then go to Main Menu -> System Utilities -> User List.  Then a list of users will be displayed and show the last login time.  For those users does not logout at night, email them to remind that they need to logout of Elliott at night time.  Keep on doing this until they adopt this practice.  If they ignore, then take this issue to the higher authority in your company.

(2) Do Not Forcefully Terminate Elliott Users When Disconnected

In another incident, the terminal server is configured to end a user session when it is discounted for 1 minute.  See sample screen below:


It is bad idea to forcefully terminate the Elliott users just because their connection is dropped temporarily. Our theory is that the forceful termination of Elliott sessions may leave certain Elliott DLL files in the orphan state as indicated in the Microsoft Knowledge Base.  We suggest changing the above setting to "Never" so the terminal server will never end a user session automatically after a session is disconnected.  As a system manager, if you wish to terminate the disconnected Elliott user session, you should take over the user session and log the user out of Elliott and then logout the user session gracefully.

EMK

Systems Manager

  1. Mapped Drives Disappear After Logoff or Reboot
  2. Using Raw Data Pass Through for Dot Matrix Printer on Windows 10 Does Not Work
  3. How Do I Find The Workstation That's Infected with The Crypto Ransom Ware?
  4. How to Reset the Counter in *.DAT Files After Recovery from Crypto Ransom Ware Attack
  5. Aging Shows Differently After Database Rebuild
  6. What Do I Do When My Anti-virus Software Reports Elliott EXE File as a Virus?
  7. High CPU Usage and Performance Issues After Implementing NTFS Security
  8. "We can't verify who created this file. Are you sure you want to run this file?"
  9. Problem with Printer Configuration If Running Elliott from Multiple Workstations
  10. Inconsistent Elliott Error on Terminal Server
  11. How to Restore Elliott from CryptoWall Ransomware Attack
  12. Clarify Laser Forms Line Item Level Barcode Printing
  13. Is Dot Matrix Printer Still Supported in Elliott with Windows 10?
  14. Should I Install the 32-bit or 64-bit Outlook/Office?
  15. I Receive Error 114 When I Start Up Elliott on the Server
  16. Manage Data Execution Prevention (DEP) Through Registry Editing
  17. Windows Defender May Cause Elliott Start-Up Difficulties
  18. Why Do I Exceed Elliott User License Count When There are No or Very Few Users in Elliott?
  19. What Causes Load Error 198?
  20. How the Windows Scheme You Choose May Affect the Elliott Screen Display
  21. Still Get Error 114 After Adding All Elliott EXE Files to the DEP List
  22. How to Copy Laser Form Templates from Company to Company
  23. Weird Character Displayed for Backslash (\) Character
  24. Does Elliott Support Desktop Virtualization?
  25. Access Is Denied When Launching Elliott V8 Report Viewer
  26. User Cannot See Some Spooled Reports in Elliott V8
  27. Why Does the User List Function Take Forever to Bring Up?
  28. I Am Running Out of Invoice Numbers -- I Need Direction to Archive Invoices
  29. Algorithm to Speed Up eContacts List in Elliott V8
  30. Elliott Requires Volume Supporting 8dot3name
  31. Elliott Running Extremely Slow on Windows 8 with Trend Micro Anti Virus Software Installed
  32. What Causes "File Table Exceed Limit" Error?
  33. Mass Email Time Out
  34. Report Incomplete After 4 Hours: Event Stops Working After Upgrade to Elliott V8
  35. File Created in C:\ Root Directory Disappears
  36. Is There a Way to Create and Distribute Elliott Printer Configurations?
  37. What Are "COBOL Only" or "User Defined" Event Actions? Can We Use Them in Any Way?
  38. How to Purge WSORDHDR.BTR and WSORDLIN.BTR files?
  39. CPORDLS (Order Serial/Lot File) Btrieve Page Size
  40. Create PO Receiving Event to Trap Negative Qty on Hand Problem
  41. Reducing File Sizes for INITLFILE.LOG & SYACTLOG.BTR
  42. Windows 10 and Trend Micro Anti-Virus Software
  43. The Remote Certificate Is Invalid According to the Validation Procedure
  44. Customer Has Multiple Primary Contacts or No Primary Contact
  45. Btrieve Error 46 on S/M Activity Log File
  46. Multi-Currency Workarounds in Elliott
  47. Using the Export Processor to Export Data
  48. Instructions for Importing Laser Form Template
  49. I Am Unable to Post or Enter a Date for the New Year
  50. Does Elliott Work Under Virtualized Desktops Infrastructure (VDI)
  51. Btrieve Error 80 During Defer Processing
  52. Lauch CSV File -- There Was a Problem Sending the Command to the Program
  53. Feature - System Users File Integrity Check
  54. Receive Error in NWSMSCRN for Function Pf-Map-Coordinate-Space
  55. Not Able to Receive Event Emails from Certain Users
  56. Feature - Events for Add Note and Delete Note
  57. When and How to Use DDF2BTR.EXE Utility
  58. Elliott Last Printing Job Overrides Windows Default Printer on Windows 10
  59. Not Able to Change Attributes Added by Other Users
  60. Feature - New Context Menus in v8.0 Spooled Reports Manager
  61. Feature - Automatic Archiving of Spooled Reports in Elliott v8.0
  62. Feature - Enhanced Security for Attributes
  63. Feature - Deferred Processing Multiple Times Per Day
  64. Feature - Ability to Specify User ID in User Search
  65. Feature - Utility to Re-Calculate Item First Received and Last Received Date
  66. NSCTLMN1 Global Setup Time Clock Global Setup
  67. How to Set Up One-to-One Restriction of Customer and Item
  68. Recursion Error When Drill Down to Item File Inquiry
  69. Error Invoking Macro - Cannot Install Hook
  70. Feature - Record Navigation in Attribute Window
  71. Error Connecting VPN from Windows 10 to Windows 2008 Server
  72. How to Stop Users from Sending Elliott Reports through Email
  73. Does Elliott Support Windows 10?
  74. It Is Extremely Slow to Run Elliott over VPN Connection
  75. SYTIMCLK Systems Manager General Time Clock
  76. Feature - Recalculate AP Vendor YTD and Last Year Amount
  77. XCO0100 Systems Manager Design Your Own Order
  78. Feature - Restrict Recurring Event for Number of Times for a Specific Reference
  79. How Do I Limit the Companies for Users?
  80. Feature - Enforced Report Destinations
  81. I Am Unable to Create a New User in Elliott
  82. Feature - PDF Printing in Elliott V8.2
  83. Feature: PDF PostOffice in Elliott V8.2, Introduction
  84. Feature: PDF PostOffice in Elliott V8.2, Part 1
  85. Feature: PDF PostOffice in Elliott V8.2, Part 2
  86. Feature: PDF PostOffice in Elliott V8.2, Part 3
  87. Feature - Added Checkbox and Description to Attribute List and the SPS Commerce Create Attribute Register
  88. Feature - Performance Options for eContact Activity Tab
  89. Feature - Mass Change Salesman Utility
  90. Elliott Installer File-In-Use Warning During Installation
  91. Unable to Run Elliott from UNC Path
  92. V8 Program Desktop Startup Shortcuts - Internal Macro
  93. Event When Order Put On Hold at Invoice Printing
  94. Feature - Time Clock Logoff Type
  95. Feature - Added Distribution to G/L History Files
  96. Feature - Utility to Update eContact PDF PostOffice Flags
  97. Can I Use Elliott for Sales, Telemarketing and CRM Purposes?
  98. Emailing PDF with SSPI Failed After Online Charging Using Credit Card
  99. Can You Explain How Elliott Stores Serial Numbers in Its Database?
  100. Converting Elliott Internal Date to Conventional Date Format in Excel
  101. All of a Sudden, My Terminal Server's Elliott Default Changed to Someone Else's Settings
  102. WannaCry Ransomware Security Recommendation
  103. Symantec Endpoint Protection Versions 12 and 14 Cause Elliott Startup Error
  104. Notes Security - From Global Setup, Note Type to Supervisory Relationship
  105. Remote Desktop Workstation Name
  106. Which Anti-Virus Software Do You Recommend to Installing on the Elliott ERP Server?
  107. Menu Access Error - You Do Not Have Access to CP,INQ, Menu Item 01
  108. Ping Test to Isolate Inconsistent Load Error 198
  109. The Definitions of Extra Flags in System Period Control Setup
  110. How to Use Procdump.exe to Create a Memory Dump for PSQL Engine
  111. Feature - Group Location Security
  112. NSCTLMN4 Global Setup Bill of Lading 1
  113. NSCTLMN4 Global Setup Bill of Lading 2
  114. NSCTLMN4 Global Setup Bill of Lading 3
  115. NSCTLMN4 Global Setup Bill of Lading 4
  116. NSCTLMN4 Global Setup Bill of Lading 5
  117. NSCTLMN4 Global Setup Bill of Lading 6
  118. NSCTLMN4 Global Setup Bill of Lading 7
  119. NSCTLMN4 Global Setup Bill of Lading 8
  120. NSCTLMN4 Global Setup Bill of Lading 9
  121. NSCTLMN4 Global Setup Bill of Lading 10
  122. NSCTLMN4 Global Setup Bill of Lading: Index
  123. Feature - Support 12 Months History in Export Processor
  124. NSCTLMN3 Inventory Management Global Control Setup 1
  125. NSCTLMN3 Inventory Management Global Control Setup 2
  126. NSCTLMN3 Purchase Order Global Control Setup 1
  127. NSCTLMN3 Purchase Order Global Control Setup 2
  128. NSCTLMN3 Bill of Material and Production Order Global Control Setup
  129. NSCTLMN3 Distribution Modules Global Setup: Index
  130. NSCTLMN5 Global Setup Change Quote to Order 1
  131. NSCTLMN5 Global Setup Change Quote to Order 2
  132. NSCTLMN5 Global Setup Change Quote to Order 3
  133. NSCTLMN5 Global Setup Change Quote to Order 4
  134. NSCTLMN5 Global Setup Change Quote to Order 5
  135. NSCTLMN5 Global Setup Change Quote to Order 6
  136. NSCTLMN5 Global Setup Change Quote to Order: Index
  137. I Cannot See the Spooled Reports Even though I Am an Administrator Equivalent User
  138. Multi-Currency Exchange Handling in Elliott
  139. How to be a Good Elliott Citizen
  140. Salesman Security
  141. SYMENU System Manager Introduction 1
  142. SYMENU System Manager Introduction 2
  143. SYMENU System Manager Introduction 3
  144. SYMENU System Manager Introduction 4
  145. SYMENU System Manager Introduction 5
  146. SYMENU System Manager Introduction 6
  147. SYMENU System Manager Introduction 7
  148. SYMENU System Manager Introduction 8
  149. SYMENU System Manager Introduction 9
  150. SYMENU System Manager Introduction 10
  151. Feature - Audit Trail of Accumulator Clearing
  152. SYMENU System Manager Introduction 11
  153. SYMENU System Manager Introduction 12
  154. SYMENU System Manager Introduction 13
  155. SYMENU System Manager Introduction 14
  156. SYMENU System Manager Introduction 15
  157. SYMENU System Manager Introduction 16
  158. SYMENU System Manager Introduction 17
  159. SYMENU System Manager Introduction 18
  160. SYMENU System Manager Introduction 19
  161. SYMENU System Manager Introduction 20
  162. SYMENU System Manager Introduction 21
  163. SYMENU System Manager Introduction 22
  164. SYMENU System Manager Introduction 23
  165. SYMENU System Manager Introduction 24
  166. SYMENU System Manager Introduction 25
  167. SYMENU System Manager Introduction 26
  168. SYMENU System Manager Introduction 27
  169. SYMENU System Manager Introduction 28
  170. SYMENU System Manager Introduction 29
  171. SYMENU System Manager Introduction 30
  172. SYMENU System Manager Introduction 31
  173. SYMENU System Manager Introduction 32
  174. SYMENU System Manager Introduction 33
  175. SYMENU System Manager Introduction 34
  176. SYMENU System Manager Introduction 35
  177. SYMENU System Manager Introduction 36
  178. SYMENU System Manager Introduction 37
  179. SYMENU System Manager Introduction 38
  180. SYMENU System Manager Introduction 39
  181. SYMENU System Manager Introduction 40
  182. SYMENU System Manager Introduction 41
  183. SYMENU System Manager Introduction 42
  184. SYMENU System Manager Introduction 43
  185. SYMENU System Manager Introduction 44
  186. SYMENU System Manager Introduction 45
  187. SYMENU System Manager Introduction 46
  188. SYMENU System Manager Introduction 47
  189. SYMENU System Manager Introduction 48
  190. SYMENU System Manager Introduction 49
  191. SYMENU System Manager Introduction 50
  192. SYMENU System Manager Introduction 51
  193. SYMENU System Manager Introduction 52
  194. SYMENU System Manager Introduction: Index
  195. Elliott V7.0 Release Notes: What's New Since Elliott V6.7
  196. Elliott V7.1 Release Notes: What's New Since Elliott V7.0
  197. Elliott V7.2 Release Notes: What's New Since Elliott V7.1
  198. Elliott V7.3 Release Notes: What's New Since Elliott V7.2
  199. Elliott V8.1 Release Notes: What's New Since Elliott V8.0
  200. Elliott V7.4 Release Notes: What's New Since Elliott V7.3
  201. Elliott V7.5 Release Notes: What's New Since Elliott V7.4
  202. Elliott V8.0 Release Notes: What's New Since Elliott V7.5
  203. Elliott V8.2 Release Notes: What's New Since Elliott V8.1
  204. Drill Down and Receive Message You Do Not Have Access
  205. Problem Running Elliott After Upgrading Windows 10 to Fall Creator Edition
  206. MAPISendMail failed! Not supported [26]
  207. What Information Is Stored in System 12 Months Table (SY12MONS)?
  208. Elliott Telephony Integration - How to Call through My Telephone Set from eContact?
  209. Error Adding Printer Configuration After Latest Windows 10 Update
  210. Anti-Virus Causes PostOffice Emailing Problem
  211. Feature - Equal Sign Support in Export Processor
  212. Running Elliott 8.2 and Up on Windows 2003 Server
  213. How Can I Find Out About New Elliott Events Added or Changed Lately?
  214. Feature - Export Enhanced Attribute Predefined Code Value and Description
  215. Error 114 with GUIUTL32.LBR\GUIUTIL.int in Defer Processing

Feedback and Knowledge Base