#Error Handling

1 Follower · 88 Posts

Error handling refers to the response and recovery procedures from error conditions present in a software application. It is the process comprised of anticipation, detection and resolution of application errors, programming errors or communication errors.

Learn more.

Question Scott Roth · Jan 13, 2021

I have a case where our EMR is sending data, but not all the values needed for the Ancillary are valued properly and causes that message to error/halt processing on the Ancillary system, not ideal but its what they do. I would expect them to still process the message except that 1 field, but they don't.

I want to add validation to make sure certain fields are valued correctly for the Vendor. 

So I add some statements to take those items that don't pass this validation out to a batch file with headers.

But I want to email out that batch file.

9
0 1132
Question Edrian Golob · Dec 23, 2020

Hello guys.

Can anyone help me about Global ^Errors? Only in 1 specific namespace is it growing fastly. It grows from 2 to 3 Gb per hour when all services are active. Which commands exactly do this? In another similar namespaces, there is not that Global in the class list.

 

Thanks.

4
0 428
Question Vikram Annadurai · Dec 20, 2019

Hello All, 

I connected the Cache from Power BI using ODBC connection. And I can able to view the tables but I could't able to view the data records. getting some error when I shoot on the table name. I couldn't trace what I'm missing. Please help me.

Error Message: "Value cannot be null. Parameter name: exceptionType"

 

Thanks,

Vikram

2
0 428
Question Ahmad Bukhtiar · Dec 5, 2020

Hi, we suddenly noticed that one of the edge storage increased by 30% and it was due to ERROR globals which was throwing repeated error for 7 days and it consumed 35GB space. Is there a way to log the storage of edge production on daily basis and compare the increase in storage with previous day and if increase is 5% more than trigger an email to system admit to look why the storage increased suddenly. 

3
0 357
Job Mike Yackanich · Nov 18, 2020

We're looking to grow our team by adding an experienced healthcare interoperability resource to focus on Participant onboarding and troubleshooting, and testing and evaluation of in-house and third-party software solutions to ensure compliance with organizational standards and requirements.

Details of position are available on our Careers page.

#healthcare  #remotework

0
0 390
Discussion Evgeny Shvarov · Sep 28, 2020

Hi developers!

Want to discuss with you the case of %Status.

If you familiar with ObjectScript you know what is it. I'd love to hear the history of the case why it had appeared in ObjectScript but it turned out that almost every system/library classmethods return %Status and there is a whole set of tools to deal with it.

What is does it gives you the responsibility to check the value or %Status of every system method you call.

E.g. if you save the data of the persistent class,  you should never call like this:

do obj.%Save()

you need to call:

set sc=obj.%Save()

if $$$ISERR(sc) do // something or quit.
19
0 1289
Article Daniel Tamajon · Sep 1, 2020 5m read

Error management on InterSystems languages has been evolving along time. Next, we will show the different implementations and why you should use the TRY/THROW/CATCH mechanism.

You can read official error recommendations here.

InterSystems will not mark as obsoletes the non-recommended error management methods to allow giving support to legacy applications. We recommend using tools like objectscriptQuality to detect that legacy unrecommended usage along with many other possible issues and bugs.

2
3 1005
Question Scott Roth · Aug 12, 2020

We have a vendor that every couple of days will just stop transmitting messages, but still hold the TCP/IP connection open. No matter how many times we troubleshoot and talk with them, they don't seem to think its an issue with system.  Normally if I just restart the service it will get the data flowing again.

I know ideal is for them to fix the issue, but in the meantime I have setup an Inactivity time out alert.  I was wondering with the correct filtering if there was a way to say if the Inactivity Alert is triggered during the business day, to have the Alert trigger a restart of the service?

3
0 327
Article Evgeny Shvarov · Aug 2, 2020 1m read

Hi Developers!

As you know the application errors live in ^ERRORS global. They appear there if you call:

d e.Log() 

in a Catch section of Try-Catch.

With @Robert Cemper's approach, you can now use SQL to examine it.

Inspired by Robert's module I introduced a simple IRIS Analytics module which shows these errors in a dashboard:

5
1 409
Question Kevin Clancy · Mar 26, 2020

The intersystems documentation gives the same description for both <MAXSTRING> and <NETWORK DATA UPDATE FAILED - MAXSTRING>. I suspect that the description for <MAXSTRING> is correct and the description for <NETWORK DATA UPDATE FAILED - MAXSTRING> was an accident. I would like to know what situation triggers the <NETWORK DATA UPDATE FAILED - MAXSTRING> error.

2
0 498
Question Jack Smith · Oct 27, 2019

We have a data transformation where source is object collection (populated from a json file)  and target is EnsLib.EDI.XML.Document.

If source file is large enough, transformation fails and we get <store> error and I quickly found this:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=EBPLR_DTL_foreach which at the bottom in "Avoiding <STORE> Errors with Large Messages" section tells to: 

"As you loop over segments in a message or object collections, they are brought into memory.

1
0 549
Question Vikram Annadurai · Dec 20, 2019

Hello All,

I have connected InterSystems Cache remote server from Power BI using ODBC Connection . But I am not able to view the data records on Power BI getting some error "Value cannot be null. Parameter name: exceptionType". And also I checked with that remote server with the location   System > System Logs > View xDBC Error Log > xDBC Errors . On that place I can see the below error

"[SQLCODE: <-400>:<Fatal Error Has Occurred>] [Cache Error: <<READ>ServerLoop+16^%SYS.

2
0 910
Article Pravin Barton · Mar 28, 2019 2m read

ObjectScript has at least three ways of handling errors (status codes, exceptions, SQLCODE, etc.). Most of the system code uses statuses but exceptions are easier to handle for a number of reasons. Working with legacy code you spend some time translating between the different techniques. I use these snippets a lot for reference. Hopefully they're useful to others as well.

 

///Status from SQLCODE:
set st = $$$ERROR($$$SQLError, SQLCODE, $g(%msg))  //embedded SQL
set st = $$$ERROR($$$SQLError, rs.%SQLCODE, $g(rs.%Message)) //dynamic SQL
///Exception from SQLCODE:
throw ##class(%Exception.
5
23 3967
Question Abbad Minhas · Nov 11, 2019

I have the following class: 

 

Class P.RA.SII.F
{


Query ClosedFutures(FromDate As %Date, ToDate As %Date) As %Query(ROWSPEC = "FundCode:%String, Asset:%String, TradeDate:%Date,BuySell:%String, Price:Data.Common.Numeric, Quantity:%Numeric, CumulativePosition:%Numeric, PreviousCumulativePosition:%Numeric, ClosingTrades:%Integer, ClosingTradesInPeriod:%Integer, ClosedTradeValueInPeriod:Data.Common.Numeric, NetQuantityInPeriod:%Integer, WeightedClosedAverageTradePriceInPeriod:Data.Common.

3
0 270
Question Yaron Munz · Apr 11, 2019

In a Business Process (BPL) I noticed that if I 'm using a "scope" to handle errors  then inside the "scope" when a "call" is used, the "request" and "response" action (i.e set for callrequest.prop = request.prop & response.prop = callrespones.prop does NOT work !
The result is that the values of those properties in the callrequest  are nulls (I do see the properties names in the content of the callrequest message)

What is the best way to solve this issue ?
As it seems that there are new instances of the request/response objects inside the scope, whats the best way to pass them into the scope ?

1
0 362
Question Jose Antonio Cañizares · Mar 5, 2019

Hi all,

Lets imagine that there's a process that locks an entry of a gived domain, in my example the ID 2 of the table User.tApplications and using an exclusive lock.  Additionally the error handling is managed by a $ETrap routine wich will look for error data in order to log it


Set $ETrap = "Do Err1^ErrRoutine"

Set obj = ##class(User.tApplications).%OpenId(2,"4",.errors)

If ($System.Status.
1
0 403
Question Guillaume Lepretre · Jun 20, 2018

Hello,

I used the operation :  EnsLib.EMail.AlertOperation to send mail to handle error. However, I want to get more information about the error (session ID message, the date, the namespace... etc).

what is the best way to do it?

I tried to add informations in OnAlertRequest method as below but I need to change mail operation from all namespaces...

4
0 629
Question p rd · Mar 26, 2018

Server:

Class webservice.SOAPResponse Extends (%RegisteredObject, %XML.Adaptor)
{

Property CustomerID As %String;

Property Name As %String;

Property Street As %String;

Property City As %String;

Property State As %String;

Property Zip As %String;

}

//--------------------

///
Class webservice.webServiceServer Extends %SOAP.WebService [ ProcedureBlock ]
{

Parameter SERVICENAME = "webServiceServer";

Parameter NAMESPACE = "http://tempuri.org";

Parameter USECLASSNAMESPACES = 1;

Method info(queryInfo As %String) As webservice.
6
0 2192
Question Hans Rietveld · Aug 29, 2017
Caché Version String: Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2016.2.1

 

We have a mirrored Ensemble system (110,  backup and 210, primary). At one time (14:00) there is a disruption in the production. The messages are not being processed. 

Looking at the pButtons (every 10 seconds) I see the following abnormal at the WDphase


and the backup

The different values of WDphase are:

0: Idle (WD is not running)

5: WD is updating the Write Image Journal (WIJ) file.

7: WD is committing WIJ and Journal.

8: Databases are being updated.

3
0 911
Question Eric Hansen · May 15, 2017

I am trying to apply a temporary time-limited key for our organization to a Cache Server that I built out a few weeks ago for testing purposes. When I navigate in the portal to activate a new license key, I get this "ERROR #8610: License keys are not accepted on a Single User (SU) platform."

Is there something I need to do for this system in order to make it compliant for the key or do I need to request a new key from InterSystems that will work for this system? I didn't turn up anything on the web site here or via Googling the error and error text.

2
0 549
Question Don Rozwick · Mar 20, 2017

I have an XML I am sending to an operation from a BPL.  This is a query for Patient information from Epic using a web service.  I created the operation using the add-in in Studio.  I setup the BPL to do a Call and send whatever data I receive from the client.  I get a response back from Epic with a list of matching Patients.  In the BPL I am trying to use the Response Builder to pass the response ID, name, DOB, etc. to matching context items to then pass to the client as a response.

4
0 1188
Question Anzelem Sanyatwe · Jan 18, 2017

I’ve a server that is running Windows Server 2003 R2 Enterprise Edition SP2 x86.

I just noted that you cannot allocate shared memory beyond 1.6GB.

 

Is this a known problem between Cache and this OS architecture, and has anyone configured it beyond this?

 

Cache gives the below errors (Version: Cache for Windows (x86-32) 2012.2.5 (Build 962_1) Wed Jun 11 2014 13:58:32 EDT).

 

11/01/16-08:33:06:750 (0) 2 Failed to allocate 2560MB shared memory: 2045MB global buffers, 384MB routine buffers

11/01/16-08:33:08:843 (0) 2 Failed to allocate 1934MB shared memory using large pages.  Switching to small pages.

2
0 1599
Question Josh Tennefoss · Dec 9, 2016

How can I prevent large number truncation when using the DynamicObject and DynamicArray classes to create JSON in objectscript and then parsing the result in javascript. Are there any global settings that configure the output when using these classes?

 

I am looking at converting to the new DynamicObject and DynamicArray classes to build JSON. Our current (homegrown) JSON library forces string representation of numbers too long because of errors we were seeing with long numbers being truncated on the client, I am hoping to accomplish the same with the new classes.

2
0 1393
Article Istvan Hahn · Oct 6, 2016 4m read

A beginner’s guide to Exception Handling in RESTful web services. The article gives an example how the various error conditions during processing a service request can be handled.

We expect our client – server communication working in a flawless operational condition, running error free software. But we are prepared to handle exceptions. Are we? So far in the examples of the previous sessions were not. We did not care about exceptions. The result? In any error incident it took ages to figure out what the problem is and more importantly how to fix it.

Remember, REST leans on HTTP.

1
0 1910