node-opcua-client 2.95.0 → 2.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,7 @@ const client_subscription_1 = require("../client_subscription");
22
22
  const client_monitored_item_toolbox_1 = require("../client_monitored_item_toolbox");
23
23
  const client_monitored_item_group_impl_1 = require("./client_monitored_item_group_impl");
24
24
  const client_monitored_item_impl_1 = require("./client_monitored_item_impl");
25
+ const performance_1 = require("./performance");
25
26
  const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
26
27
  const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
27
28
  const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
@@ -535,7 +536,7 @@ class ClientSubscriptionImpl extends events_1.EventEmitter {
535
536
  this.publishingInterval = response.revisedPublishingInterval;
536
537
  this.lifetimeCount = response.revisedLifetimeCount;
537
538
  this.maxKeepAliveCount = response.revisedMaxKeepAliveCount;
538
- this.timeoutHint = Math.min(((this.maxKeepAliveCount + 10) * this.publishingInterval) * 2, 0x7FFFF);
539
+ this.timeoutHint = Math.min((this.maxKeepAliveCount + 10) * this.publishingInterval * 2, 0x7ffff);
539
540
  displayKeepAliveWarning(this.session.timeout, this.maxKeepAliveCount, this.publishingInterval);
540
541
  client_subscription_1.ClientSubscription.ignoreNextWarning = false;
541
542
  if (doDebug) {
@@ -652,28 +653,42 @@ class ClientSubscriptionImpl extends events_1.EventEmitter {
652
653
  this.emit("received_notifications", notificationMessage);
653
654
  // let publish a global event
654
655
  (0, node_opcua_client_dynamic_extension_object_1.promoteOpaqueStructureInNotificationData)(this.session, notificationData).then(() => {
655
- // now process all notifications
656
- for (const notification of notificationData) {
657
- // istanbul ignore next
658
- if (!notification) {
659
- continue;
660
- }
661
- // DataChangeNotification / StatusChangeNotification / EventNotification
662
- switch (notification.schema.name) {
663
- case "DataChangeNotification":
664
- // now inform each individual monitored item
665
- this.__on_publish_response_DataChangeNotification(notification);
666
- break;
667
- case "StatusChangeNotification":
668
- this.__on_publish_response_StatusChangeNotification(notification);
669
- break;
670
- case "EventNotificationList":
671
- this.__on_publish_response_EventNotificationList(notification);
672
- break;
673
- default:
674
- warningLog(" Invalid notification :", notification.toString());
656
+ (0, performance_1.detectLongOperation)(() => {
657
+ // now process all notifications
658
+ for (const notification of notificationData) {
659
+ // istanbul ignore next
660
+ if (!notification) {
661
+ continue;
662
+ }
663
+ // DataChangeNotification / StatusChangeNotification / EventNotification
664
+ switch (notification.schema.name) {
665
+ case "DataChangeNotification":
666
+ // now inform each individual monitored item
667
+ this.__on_publish_response_DataChangeNotification(notification);
668
+ break;
669
+ case "StatusChangeNotification":
670
+ this.__on_publish_response_StatusChangeNotification(notification);
671
+ break;
672
+ case "EventNotificationList":
673
+ this.__on_publish_response_EventNotificationList(notification);
674
+ break;
675
+ default:
676
+ warningLog(" Invalid notification :", notification.toString());
677
+ }
675
678
  }
676
- }
679
+ }, (duration) => {
680
+ const s = (a) => {
681
+ const b = a;
682
+ b.$_slowNotifCount = b.$_slowNotifCount || 0;
683
+ b.$_maxDuration = b.$_maxDuration || 0;
684
+ return b;
685
+ };
686
+ s(this).$_maxDuration = Math.max(s(this).$_maxDuration, duration);
687
+ if (s(this).$_slowNotifCount > 0 && s(this).$_slowNotifCount % 1000 !== 0)
688
+ return;
689
+ s(this).$_slowNotifCount++;
690
+ warningLog(`[NODE-OPCUA-W32]}: monitored.item event handler takes too much time : operation duration ${duration} ms [repeated ${s(this).$_slowNotifCount} times]\n please ensure that your monitoreItem event handler is not blocking the event loop.`);
691
+ });
677
692
  });
678
693
  }
679
694
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client_subscription_impl.js","sourceRoot":"","sources":["../../source/private/client_subscription_impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_subscription_impl.js","sourceRoot":"","sources":["../../source/private/client_subscription_impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function detectLongOperation(lambda: () => void, onLongOperation: (duration: number) => void): void;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectLongOperation = void 0;
4
+ const LONG_EVENT_HANDLER = process.env.NODEOPCUA_LONG_EVENT_HANDLER ? parseFloat(process.env.NODEOPCUA_LONG_EVENT_HANDLER) : 100; // how long a write can take before we log a warning
5
+ const convertHrtimeToMilliseconds = (hrtime) => {
6
+ const seconds = hrtime[0];
7
+ const nanoseconds = hrtime[1];
8
+ return seconds * 1e3 + nanoseconds * 1e-6;
9
+ };
10
+ function detectLongOperation(lambda, onLongOperation) {
11
+ const start = process.hrtime();
12
+ lambda();
13
+ const duration = convertHrtimeToMilliseconds(process.hrtime(start));
14
+ if (duration > LONG_EVENT_HANDLER) {
15
+ onLongOperation(duration);
16
+ }
17
+ }
18
+ exports.detectLongOperation = detectLongOperation;
19
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../source/private/performance.ts"],"names":[],"mappings":";;;AACA,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,oDAAoD;AAEvL,MAAM,2BAA2B,GAAG,CAAC,MAAwB,EAAE,EAAE;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,OAAO,GAAG,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC;AAC9C,CAAC,CAAC;AAEF,SAAgB,mBAAmB,CAAC,MAAkB,EAAE,eAAyC;IAC7F,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,IAAI,QAAQ,GAAG,kBAAkB,EAAE;QAC/B,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC7B;AACL,CAAC;AAPD,kDAOC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-client",
3
- "version": "2.95.0",
3
+ "version": "2.97.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -client",
5
5
  "scripts": {
6
6
  "clean": "npx rimraf node_modules dist *.tsbuildinfo certificates",
@@ -20,43 +20,43 @@
20
20
  "callbackify": "^1.1.0",
21
21
  "chalk": "4.1.2",
22
22
  "node-opcua-assert": "2.88.0",
23
- "node-opcua-basic-types": "2.92.0",
23
+ "node-opcua-basic-types": "2.97.0",
24
24
  "node-opcua-buffer-utils": "2.90.1",
25
25
  "node-opcua-certificate-manager": "2.92.0",
26
- "node-opcua-client-dynamic-extension-object": "2.95.0",
27
- "node-opcua-common": "2.95.0",
26
+ "node-opcua-client-dynamic-extension-object": "2.97.0",
27
+ "node-opcua-common": "2.97.0",
28
28
  "node-opcua-constants": "2.88.0",
29
29
  "node-opcua-crypto": "^2.1.2",
30
- "node-opcua-data-model": "2.95.0",
31
- "node-opcua-data-value": "2.95.0",
30
+ "node-opcua-data-model": "2.97.0",
31
+ "node-opcua-data-value": "2.97.0",
32
32
  "node-opcua-date-time": "2.90.1",
33
33
  "node-opcua-debug": "2.90.1",
34
- "node-opcua-extension-object": "2.95.0",
34
+ "node-opcua-extension-object": "2.97.0",
35
35
  "node-opcua-hostname": "2.88.0",
36
- "node-opcua-nodeid": "2.90.1",
36
+ "node-opcua-nodeid": "2.97.0",
37
37
  "node-opcua-object-registry": "2.90.1",
38
38
  "node-opcua-pki": "^3.0.2",
39
- "node-opcua-pseudo-session": "2.95.0",
40
- "node-opcua-schemas": "2.95.0",
41
- "node-opcua-secure-channel": "2.95.0",
42
- "node-opcua-service-browse": "2.95.0",
43
- "node-opcua-service-call": "2.95.0",
44
- "node-opcua-service-discovery": "2.95.0",
45
- "node-opcua-service-endpoints": "2.95.0",
46
- "node-opcua-service-filter": "2.95.0",
47
- "node-opcua-service-history": "2.95.0",
48
- "node-opcua-service-query": "2.95.0",
49
- "node-opcua-service-read": "2.95.0",
50
- "node-opcua-service-register-node": "2.95.0",
51
- "node-opcua-service-secure-channel": "2.95.0",
52
- "node-opcua-service-session": "2.95.0",
53
- "node-opcua-service-subscription": "2.95.0",
54
- "node-opcua-service-translate-browse-path": "2.95.0",
55
- "node-opcua-service-write": "2.95.0",
39
+ "node-opcua-pseudo-session": "2.97.0",
40
+ "node-opcua-schemas": "2.97.0",
41
+ "node-opcua-secure-channel": "2.97.0",
42
+ "node-opcua-service-browse": "2.97.0",
43
+ "node-opcua-service-call": "2.97.0",
44
+ "node-opcua-service-discovery": "2.97.0",
45
+ "node-opcua-service-endpoints": "2.97.0",
46
+ "node-opcua-service-filter": "2.97.0",
47
+ "node-opcua-service-history": "2.97.0",
48
+ "node-opcua-service-query": "2.97.0",
49
+ "node-opcua-service-read": "2.97.0",
50
+ "node-opcua-service-register-node": "2.97.0",
51
+ "node-opcua-service-secure-channel": "2.97.0",
52
+ "node-opcua-service-session": "2.97.0",
53
+ "node-opcua-service-subscription": "2.97.0",
54
+ "node-opcua-service-translate-browse-path": "2.97.0",
55
+ "node-opcua-service-write": "2.97.0",
56
56
  "node-opcua-status-code": "2.90.1",
57
- "node-opcua-types": "2.95.0",
57
+ "node-opcua-types": "2.97.0",
58
58
  "node-opcua-utils": "2.90.1",
59
- "node-opcua-variant": "2.95.0",
59
+ "node-opcua-variant": "2.97.0",
60
60
  "once": "^1.4.0",
61
61
  "thenify": "^3.3.1"
62
62
  },
@@ -64,11 +64,11 @@
64
64
  "@types/underscore": "^1.11.4",
65
65
  "dequeue": "^1.0.5",
66
66
  "mocha": "^10.2.0",
67
- "node-opcua-address-space": "2.95.0",
67
+ "node-opcua-address-space": "2.97.0",
68
68
  "node-opcua-binary-stream": "2.90.1",
69
- "node-opcua-factory": "2.95.0",
69
+ "node-opcua-factory": "2.97.0",
70
70
  "node-opcua-leak-detector": "2.90.1",
71
- "node-opcua-nodesets": "2.88.0",
71
+ "node-opcua-nodesets": "2.96.0",
72
72
  "should": "^13.2.3",
73
73
  "sinon": "^15.0.1",
74
74
  "underscore": "^1.13.6"
@@ -93,5 +93,5 @@
93
93
  "internet of things"
94
94
  ],
95
95
  "homepage": "http://node-opcua.github.io/",
96
- "gitHead": "ad7086f9c4cd2ab52922e26cb6782ec6b86f9d20"
96
+ "gitHead": "19c96bda0810d2dec73dd1c2427546be40908646"
97
97
  }
@@ -57,6 +57,7 @@ import { ClientMonitoredItemGroupImpl } from "./client_monitored_item_group_impl
57
57
  import { ClientMonitoredItemImpl } from "./client_monitored_item_impl";
58
58
  import { ClientSidePublishEngine } from "./client_publish_engine";
59
59
  import { ClientSessionImpl } from "./client_session_impl";
60
+ import { detectLongOperation } from "./performance";
60
61
 
61
62
  const debugLog = make_debugLog(__filename);
62
63
  const doDebug = checkDebugFlag(__filename);
@@ -754,7 +755,7 @@ export class ClientSubscriptionImpl extends EventEmitter implements ClientSubscr
754
755
  this.lifetimeCount = response.revisedLifetimeCount;
755
756
  this.maxKeepAliveCount = response.revisedMaxKeepAliveCount;
756
757
 
757
- this.timeoutHint = Math.min(((this.maxKeepAliveCount + 10) * this.publishingInterval) * 2, 0x7FFFF);
758
+ this.timeoutHint = Math.min((this.maxKeepAliveCount + 10) * this.publishingInterval * 2, 0x7ffff);
758
759
 
759
760
  displayKeepAliveWarning(this.session.timeout, this.maxKeepAliveCount, this.publishingInterval);
760
761
  ClientSubscription.ignoreNextWarning = false;
@@ -898,29 +899,49 @@ export class ClientSubscriptionImpl extends EventEmitter implements ClientSubscr
898
899
  // let publish a global event
899
900
 
900
901
  promoteOpaqueStructureInNotificationData(this.session, notificationData).then(() => {
901
- // now process all notifications
902
- for (const notification of notificationData) {
903
- // istanbul ignore next
904
- if (!notification) {
905
- continue;
906
- }
902
+ detectLongOperation(
903
+ () => {
904
+ // now process all notifications
905
+ for (const notification of notificationData) {
906
+ // istanbul ignore next
907
+ if (!notification) {
908
+ continue;
909
+ }
907
910
 
908
- // DataChangeNotification / StatusChangeNotification / EventNotification
909
- switch (notification.schema.name) {
910
- case "DataChangeNotification":
911
- // now inform each individual monitored item
912
- this.__on_publish_response_DataChangeNotification(notification as DataChangeNotification);
913
- break;
914
- case "StatusChangeNotification":
915
- this.__on_publish_response_StatusChangeNotification(notification as StatusChangeNotification);
916
- break;
917
- case "EventNotificationList":
918
- this.__on_publish_response_EventNotificationList(notification as EventNotificationList);
919
- break;
920
- default:
921
- warningLog(" Invalid notification :", notification.toString());
911
+ // DataChangeNotification / StatusChangeNotification / EventNotification
912
+ switch (notification.schema.name) {
913
+ case "DataChangeNotification":
914
+ // now inform each individual monitored item
915
+ this.__on_publish_response_DataChangeNotification(notification as DataChangeNotification);
916
+ break;
917
+ case "StatusChangeNotification":
918
+ this.__on_publish_response_StatusChangeNotification(notification as StatusChangeNotification);
919
+ break;
920
+ case "EventNotificationList":
921
+ this.__on_publish_response_EventNotificationList(notification as EventNotificationList);
922
+ break;
923
+ default:
924
+ warningLog(" Invalid notification :", notification.toString());
925
+ }
926
+ }
927
+ },
928
+ (duration: number) => {
929
+ const s = (a: unknown) => {
930
+ const b = a as { $_slowNotifCount: number; $_maxDuration: number };
931
+ b.$_slowNotifCount = b.$_slowNotifCount || 0;
932
+ b.$_maxDuration = b.$_maxDuration || 0;
933
+ return b;
934
+ };
935
+ s(this).$_maxDuration = Math.max(s(this).$_maxDuration, duration);
936
+ if (s(this).$_slowNotifCount > 0 && s(this).$_slowNotifCount % 1000 !== 0) return;
937
+ s(this).$_slowNotifCount++;
938
+ warningLog(
939
+ `[NODE-OPCUA-W32]}: monitored.item event handler takes too much time : operation duration ${duration} ms [repeated ${
940
+ s(this).$_slowNotifCount
941
+ } times]\n please ensure that your monitoreItem event handler is not blocking the event loop.`
942
+ );
922
943
  }
923
- }
944
+ );
924
945
  });
925
946
  }
926
947
  }
@@ -0,0 +1,17 @@
1
+
2
+ const LONG_EVENT_HANDLER = process.env.NODEOPCUA_LONG_EVENT_HANDLER ? parseFloat(process.env.NODEOPCUA_LONG_EVENT_HANDLER) : 100; // how long a write can take before we log a warning
3
+
4
+ const convertHrtimeToMilliseconds = (hrtime: [number, number]) => {
5
+ const seconds = hrtime[0];
6
+ const nanoseconds = hrtime[1];
7
+ return seconds * 1e3 + nanoseconds * 1e-6;
8
+ };
9
+
10
+ export function detectLongOperation(lambda: () => void, onLongOperation:(duration: number )=>void): void {
11
+ const start = process.hrtime();
12
+ lambda();
13
+ const duration = convertHrtimeToMilliseconds(process.hrtime(start));
14
+ if (duration > LONG_EVENT_HANDLER) {
15
+ onLongOperation(duration);
16
+ }
17
+ }