jetstream-api 0.6.1__tar.gz → 0.6.2__tar.gz

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.
Files changed (25) hide show
  1. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/PKG-INFO +1 -1
  2. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/__init__.py +1 -1
  3. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/properties.py +33 -2
  4. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/jetstream_api.egg-info/PKG-INFO +1 -1
  5. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/pyproject.toml +1 -1
  6. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/LICENSE.txt +0 -0
  7. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/README.md +0 -0
  8. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/admin.py +0 -0
  9. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/admintopic.py +0 -0
  10. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/common.py +0 -0
  11. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/connectivity.py +0 -0
  12. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/exception.py +0 -0
  13. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/msg.py +0 -0
  14. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/pattern.py +0 -0
  15. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/producer.py +0 -0
  16. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/py.typed +0 -0
  17. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/qmgr.py +0 -0
  18. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/topic.py +0 -0
  19. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/ilink/util.py +0 -0
  20. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/jetstream_api.egg-info/SOURCES.txt +0 -0
  21. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/jetstream_api.egg-info/dependency_links.txt +0 -0
  22. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/jetstream_api.egg-info/requires.txt +0 -0
  23. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/jetstream_api.egg-info/top_level.txt +0 -0
  24. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/setup.cfg +0 -0
  25. {jetstream_api-0.6.1 → jetstream_api-0.6.2}/tests/test_example.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jetstream-api
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Python client API for iLink M.O.M. (Message Oriented Middleware)
5
5
  Author: snowjeans
6
6
  License: Boost Software License - Version 1.0 - August 17th, 2003
@@ -1,6 +1,6 @@
1
1
  """iLink - Python client API for iLink M.O.M. (Message Oriented Middleware)."""
2
2
 
3
- __version__ = "0.6.1"
3
+ __version__ = "0.6.2"
4
4
 
5
5
  # --- Admin / Service ---
6
6
  from .admin import ILAdminService, ILAdminQmgr, ILLogBrowser, ILQueueBrowser
@@ -28,6 +28,9 @@ def _format_millis(value: int, fmt: str) -> str:
28
28
 
29
29
  # 구엔진(rev 3283 미만)의 StorageVolumeMonitor ForceReloadSize 기본값.
30
30
  LEGACY_FORCE_RELOAD_SIZE = 1048576
31
+ # 구엔진(6.3.x)의 TCPListener SessionPerThread 기본값.
32
+ # 0 이면 imqlsr 가 nSessionCnt / nSessionPerThread 에서 0 나눗셈으로 죽는다.
33
+ LEGACY_SESSION_PER_THREAD = 10
31
34
 
32
35
  def _spec_maxlen(n):
33
36
  """``n`` 바이트 이하 문자열 규칙."""
@@ -2479,6 +2482,7 @@ class ILQmgrProperty(_AutoAccessor):
2479
2482
  self.volumeMonitorInterval = 10
2480
2483
  self.volumeMonitorSizeLimit = 10485760
2481
2484
  self._volumeTailRaw = None
2485
+ self._sessionPerThreadRaw = None
2482
2486
  self.logLevelSystem = 4
2483
2487
  self.logFileSizeSystem = 4194304
2484
2488
  self.logFileCountSystem = 5
@@ -2628,6 +2632,11 @@ class ILQmgrProperty(_AutoAccessor):
2628
2632
  offset += 2
2629
2633
  self.aclType = ba_pick_int(ba, offset, 2)
2630
2634
  offset += 2
2635
+ # v6.3.4 에서 async 를 없애며 sessionPerThread 를 뺐지만
2636
+ # **구엔진(6.3.x)에는 실재하는 필드**다. 0 을 보내면 imqlsr 가
2637
+ # nSessionCnt / nSessionPerThread 에서 죽는다(ManagerListener.h:129,
2638
+ # SIGFPE - 6.3.1 실측). 원본을 보관해 되돌려 쓴다.
2639
+ self._sessionPerThreadRaw = bytes(ba[offset:offset + 10])
2631
2640
  offset += 10
2632
2641
  self.deadLetterQueueName = ba_pick_string(ba, offset, 32)
2633
2642
  offset += 32
@@ -2692,7 +2701,14 @@ class ILQmgrProperty(_AutoAccessor):
2692
2701
  offset += 10
2693
2702
  ba_merge(self.recvWaitTimeout, ba, offset)
2694
2703
  offset += 10
2695
- offset += 20
2704
+ # v6.3.4 에서 async 를 없애며 acceptPoolSize/eventPoolSize 를 뺐지만
2705
+ # 구엔진(6.3.x)은 이 두 필드를 읽고 1~9 로 검증한다. 0 을 보내면
2706
+ # MIMQE_INVALID_ARGUMENT (AcceptPoolSize : 0) 로 거부된다(6.3.1 실측).
2707
+ # 자바는 v1.5.2 에서 같은 이유로 기본값 1 을 되살렸다 - 그것과 맞춘다.
2708
+ ba_merge(1, ba, offset)
2709
+ offset += 10
2710
+ ba_merge(1, ba, offset)
2711
+ offset += 10
2696
2712
  ba_merge(self.volumeMonitorInterval, ba, offset)
2697
2713
  offset += 10
2698
2714
  ba_merge(self.volumeMonitorSizeLimit, ba, offset)
@@ -2738,6 +2754,8 @@ class ILQmgrProperty(_AutoAccessor):
2738
2754
  offset += 2
2739
2755
  ba_merge(self.aclType, ba, offset)
2740
2756
  offset += 2
2757
+ # 구엔진에만 있는 sessionPerThread 자리 - 0 을 보내면 큐관리자가 죽는다
2758
+ session_offset = offset
2741
2759
  offset += 10
2742
2760
  ba_merge(self.deadLetterQueueName, ba, offset)
2743
2761
  offset += 32
@@ -2755,6 +2773,12 @@ class ILQmgrProperty(_AutoAccessor):
2755
2773
  else:
2756
2774
  # 새로 만든 객체라 받은 값이 없다 - 엔진 기본값을 쓴다
2757
2775
  ba_merge(LEGACY_FORCE_RELOAD_SIZE, ba, topic_offset)
2776
+ # 구엔진에만 있는 sessionPerThread 도 되돌려 준다
2777
+ raw2 = getattr(self, "_sessionPerThreadRaw", None)
2778
+ if raw2:
2779
+ ba[session_offset:session_offset + 10] = raw2
2780
+ else:
2781
+ ba_merge(LEGACY_SESSION_PER_THREAD, ba, session_offset)
2758
2782
  return bytes(ba)
2759
2783
 
2760
2784
  def get_status_string(self) -> str:
@@ -3649,7 +3673,14 @@ class ILServiceProperty(_AutoAccessor):
3649
3673
  offset += 10
3650
3674
  ba_merge(self.timeoutSocketRecv, ba, offset)
3651
3675
  offset += 10
3652
- offset += 20
3676
+ # v6.3.4 에서 async 를 없애며 acceptPoolSize/eventPoolSize 를 뺐지만
3677
+ # 구엔진(6.3.x) ilsvc 는 이 값으로 스레드 풀을 만든다
3678
+ # (ILinkServerMainClass.cpp:151, ServerListener.cpp:17). 0 이면 풀이 0개다.
3679
+ # 자바는 v1.5.2 에서 기본값 1 을 되살렸다 - 그것과 맞춘다.
3680
+ ba_merge(1, ba, offset)
3681
+ offset += 10
3682
+ ba_merge(1, ba, offset)
3683
+ offset += 10
3653
3684
  ba_merge(self.logLevelSystem, ba, offset)
3654
3685
  offset += 2
3655
3686
  ba_merge(self.logFileSizeSystem, ba, offset)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jetstream-api
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Python client API for iLink M.O.M. (Message Oriented Middleware)
5
5
  Author: snowjeans
6
6
  License: Boost Software License - Version 1.0 - August 17th, 2003
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jetstream-api"
7
- version = "0.6.1"
7
+ version = "0.6.2"
8
8
  description = "Python client API for iLink M.O.M. (Message Oriented Middleware)"
9
9
  authors = [{name = "snowjeans"}]
10
10
  readme = "README.md"
File without changes
File without changes
File without changes