11/21/2019
Session Client General Service Behaviour: TestCase 003
Test Case Description:
Requesting diagnostics information with the 'returnDiagnostics' parameter.
Test Requirements:
Client supports 'returnDiagnostics'
Expected Result:
Client makes use of the returnDiagnostics parameter and uses the returned results to provide additional information to the user or for automatic handling.
Our client does not support this parameter, and there is no plan to consider it in the near future as no such requirement has come from customers. Hence wanted to know if we should explicitly support it or leave it for now.
05/30/2017
Every client should have an error log that can be used to troubleshoot IOP issues.
The error log is where the diagnostics information could be saved.
Your clients may not know they want this feature until they have an issue in the field. At that point the lack of the such a feature will increase costs imposed on customers and your support team.
11/21/2019
Thanks for the reply Randy. Is it like DiagnosticInfo is returned only when there is an error or a BadStatusCode in the response object?
As in the request header object, we can pass only one value for setting returnDiagnostic parameter. So is it ok, if we pass only SymbolicId as returnDiagnostic value?
01/17/2023
Hi,
We are getting below diagnostic info though we have not set any ReturnDiagnostics parameter in request header. Also when we are setting it in request header it does not add any impact, any help on this will be appreciated.
CreateSubscripti on with status Bad TooManySubscriptions (ex88770000) "The server has reached its maximum number of subscriptions.":ServiceFault: Bad TooManySubscriptions (0x80770000) "The server has reached its maximum number of subscriptions."
Diagnostic Info: [endpoint opc.tcp://localhost:4841]: 2023-01-13 09:57:39.849552: BIP4362E: Java node error: [IICMsgs:9877] IIC9877E: Error occured while re-creating subscription: IIC3604E : Service fault exception thrown during CreateSubscription with status Bad TooManySubscriptions (0x88778090) The server has reached its maximum number of subscriptions.": ServiceFault: Bad TooManySubscriptions (0x88778088) "The server has reached its maximum number
of subscriptions."
01/17/2023
Hi, I am using CTT to inject error, however the ReturnDiagnostic Parameter is set to 0(Zero) in the RequestHeader, as shown below.
Request
RequestHeader
> AuthenticationToken i=1875650552
Timestamp 2023-01-20T10:14:17.407Z
RequestHandle 0
ReturnDiagnostics (0)
AuditEntryra 0
TimeoutHint
> AdditionalHeader
RequestedPublishingInterval 1000.000000
RequestedLifetimeCount 15
RequestedMaxKeepAliveCount 5
MaxNotificationsPerPublish 0
PublishingEnabled false
Priority 0
Response
ResponseHeader
Timestamp 2023-01-20T10:14:17.408Z
RequestHandle 0
ServiceResult Bad TooManySubscriptions (0x80770000)
ServiceDiagnostics
Symbolicld -1
NamespaceUri -1
Locale
LocalizedText
AdditionalInfo
InnerStatusCode
InnerDiagnosticinfo
String Table Additionalliosdoe
Good (0x00000000)
Size: 0
05/30/2017
You are not getting diagnostics returned (as expected).
The only error information is the StatusCode which is converted to text by tool.
That said, there are no values for these fields which is confusing.
Locale
LocalizedText
AdditionalInfo
InnerStatusCode
InnerDiagnosticinfo
String Table Additionalliosdoe
01/17/2023
When we are setting diagnostic parameter in requester header still we are not getting any return diagnostic information.
RequestHeader reqHdr = new RequestHeader();
UnsignedInteger di = UnsignedInteger.getFromBits(0x00000010); //Here we are setting the Header value.
System.out.println("----> Setting diagnostict header value --->" + di ); //Here we are checking the value assigned to di the same value which is passed.
reqHdr.setReturnDiagnostics(di); //Here we are setting ReturnDiagnostics value.
reqHdr.setTimeoutHint(new UnsignedInteger(getServerKeepAlive()*2*getQueuedPubReqCount()));
PublishRequest req = new PublishRequest();
req.setRequestHeader(reqHdr);
UnsignedInteger returnDiagnostics = req.getRequestHeader().getReturnDiagnostics(); //Accessing the ReturnDiagnostics value which is already set.
System.out.println("--- Setting Diagnostic info for comaparison ---"+returnDiagnostics);
05/30/2017
Servers are not required to return complete diagnostics on every service call. In some cases, the level of detail will depend on the credentials supplied by the client (i.e. only high privilege clients can see potentially sensitive diagnostic information).
Do you know that server supports diagnostics fro this call?
1 Guest(s)