jetstream-api 0.6.2__tar.gz → 0.6.3__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.2 → jetstream_api-0.6.3}/PKG-INFO +1 -1
  2. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/__init__.py +1 -1
  3. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/properties.py +43 -14
  4. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/jetstream_api.egg-info/PKG-INFO +1 -1
  5. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/pyproject.toml +1 -1
  6. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/LICENSE.txt +0 -0
  7. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/README.md +0 -0
  8. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/admin.py +0 -0
  9. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/admintopic.py +0 -0
  10. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/common.py +0 -0
  11. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/connectivity.py +0 -0
  12. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/exception.py +0 -0
  13. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/msg.py +0 -0
  14. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/pattern.py +0 -0
  15. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/producer.py +0 -0
  16. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/py.typed +0 -0
  17. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/qmgr.py +0 -0
  18. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/topic.py +0 -0
  19. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/ilink/util.py +0 -0
  20. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/jetstream_api.egg-info/SOURCES.txt +0 -0
  21. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/jetstream_api.egg-info/dependency_links.txt +0 -0
  22. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/jetstream_api.egg-info/requires.txt +0 -0
  23. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/jetstream_api.egg-info/top_level.txt +0 -0
  24. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/setup.cfg +0 -0
  25. {jetstream_api-0.6.2 → jetstream_api-0.6.3}/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.2
3
+ Version: 0.6.3
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.2"
3
+ __version__ = "0.6.3"
4
4
 
5
5
  # --- Admin / Service ---
6
6
  from .admin import ILAdminService, ILAdminQmgr, ILLogBrowser, ILQueueBrowser
@@ -26,8 +26,19 @@ def _format_millis(value: int, fmt: str) -> str:
26
26
 
27
27
 
28
28
 
29
- # 구엔진(rev 3283 미만)의 StorageVolumeMonitor ForceReloadSize 기본값.
30
- LEGACY_FORCE_RELOAD_SIZE = 1048576
29
+ # 구엔진 SetVolumeMonitorForceReloadSize() 가 강제하는 하한.
30
+ LEGACY_FORCE_RELOAD_MIN = 1048576
31
+
32
+
33
+ def _has_value(raw) -> bool:
34
+ """서버가 준 원본이 쓸 만한지 본다.
35
+
36
+ 신엔진(7.0+)은 구엔진 전용 자리를 0 으로 채워 보낸다. 그 0 을 되돌려 쓰면
37
+ 안 되므로 전부 0 이면 원본이 없는 것으로 본다.
38
+ """
39
+ return bool(raw) and any(raw)
40
+
41
+
31
42
  # 구엔진(6.3.x)의 TCPListener SessionPerThread 기본값.
32
43
  # 0 이면 imqlsr 가 nSessionCnt / nSessionPerThread 에서 0 나눗셈으로 죽는다.
33
44
  LEGACY_SESSION_PER_THREAD = 10
@@ -2483,6 +2494,7 @@ class ILQmgrProperty(_AutoAccessor):
2483
2494
  self.volumeMonitorSizeLimit = 10485760
2484
2495
  self._volumeTailRaw = None
2485
2496
  self._sessionPerThreadRaw = None
2497
+ self._poolSizeRaw = None
2486
2498
  self.logLevelSystem = 4
2487
2499
  self.logFileSizeSystem = 4194304
2488
2500
  self.logFileCountSystem = 5
@@ -2582,6 +2594,9 @@ class ILQmgrProperty(_AutoAccessor):
2582
2594
  offset += 10
2583
2595
  self.recvWaitTimeout = ba_pick_int(ba, offset, 10)
2584
2596
  offset += 10
2597
+ # 구엔진(6.3.x)에는 실재하는 필드다. 상수로 덮으면 현장에서 조정해 둔
2598
+ # 값이 지워지므로 원본을 보관해 되돌려 쓴다(실측).
2599
+ self._poolSizeRaw = bytes(ba[offset:offset + 20])
2585
2600
  offset += 20
2586
2601
  self.volumeMonitorInterval = ba_pick_int(ba, offset, 10)
2587
2602
  offset += 10
@@ -2704,11 +2719,15 @@ class ILQmgrProperty(_AutoAccessor):
2704
2719
  # v6.3.4 에서 async 를 없애며 acceptPoolSize/eventPoolSize 를 뺐지만
2705
2720
  # 구엔진(6.3.x)은 이 두 필드를 읽고 1~9 로 검증한다. 0 을 보내면
2706
2721
  # 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
2722
+ # 다만 기본값으로 덮으면 현장에서 조정해 둔 값이 지워지므로,
2723
+ # 서버가 준 원본이 있으면 그대로 되돌려 준다(없을 때만 1/1).
2724
+ raw_pool = getattr(self, "_poolSizeRaw", None)
2725
+ if _has_value(raw_pool):
2726
+ ba[offset:offset + 20] = raw_pool
2727
+ else:
2728
+ ba_merge(1, ba, offset)
2729
+ ba_merge(1, ba, offset + 10)
2730
+ offset += 20
2712
2731
  ba_merge(self.volumeMonitorInterval, ba, offset)
2713
2732
  offset += 10
2714
2733
  ba_merge(self.volumeMonitorSizeLimit, ba, offset)
@@ -2771,8 +2790,11 @@ class ILQmgrProperty(_AutoAccessor):
2771
2790
  # 서버가 준 값을 그대로 되돌려 준다
2772
2791
  ba[topic_offset:topic_offset + 20] = raw
2773
2792
  else:
2774
- # 새로 만든 객체라 받은 값이 없다 - 엔진 기본값을 쓴다
2775
- ba_merge(LEGACY_FORCE_RELOAD_SIZE, ba, topic_offset)
2793
+ # 받은 값이 없다 - 엔진 생성자와 같이 sizeLimit 을 따라간다
2794
+ # (6.3 ManagerProperty.hpp:143 이 mForceReloadSize = mSizeLimit).
2795
+ # 엔진 세터가 1048576 미만을 올려 잡으므로 그 아래로 내리지 않는다.
2796
+ ba_merge(max(self.volumeMonitorSizeLimit, LEGACY_FORCE_RELOAD_MIN),
2797
+ ba, topic_offset)
2776
2798
  # 구엔진에만 있는 sessionPerThread 도 되돌려 준다
2777
2799
  raw2 = getattr(self, "_sessionPerThreadRaw", None)
2778
2800
  if raw2:
@@ -3578,6 +3600,7 @@ class ILServiceProperty(_AutoAccessor):
3578
3600
  ILException: 그 밖의 파싱 실패.
3579
3601
  """
3580
3602
  self.ip = "127.0.0.1"
3603
+ self._poolSizeRaw = None
3581
3604
  self.port = 9998
3582
3605
  self.version = ""
3583
3606
  self.timeoutSocketSend = 60
@@ -3619,6 +3642,8 @@ class ILServiceProperty(_AutoAccessor):
3619
3642
  offset += 10
3620
3643
  self.timeoutSocketRecv = ba_pick_int(ba, offset, 10)
3621
3644
  offset += 10
3645
+ # 구엔진 ilsvc 는 이 값으로 스레드 풀을 만든다 - 원본을 보관해 되돌려 쓴다
3646
+ self._poolSizeRaw = bytes(ba[offset:offset + 20])
3622
3647
  offset += 20
3623
3648
  self.logLevelSystem = ba_pick_int(ba, offset, 2)
3624
3649
  offset += 2
@@ -3676,11 +3701,15 @@ class ILServiceProperty(_AutoAccessor):
3676
3701
  # v6.3.4 에서 async 를 없애며 acceptPoolSize/eventPoolSize 를 뺐지만
3677
3702
  # 구엔진(6.3.x) ilsvc 는 이 값으로 스레드 풀을 만든다
3678
3703
  # (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
3704
+ # 다만 기본값으로 덮으면 현장에서 조정해 둔 값이 지워지므로,
3705
+ # 서버가 준 원본이 있으면 그대로 되돌려 준다(없을 때만 1/1).
3706
+ raw_pool = getattr(self, "_poolSizeRaw", None)
3707
+ if _has_value(raw_pool):
3708
+ ba[offset:offset + 20] = raw_pool
3709
+ else:
3710
+ ba_merge(1, ba, offset)
3711
+ ba_merge(1, ba, offset + 10)
3712
+ offset += 20
3684
3713
  ba_merge(self.logLevelSystem, ba, offset)
3685
3714
  offset += 2
3686
3715
  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.2
3
+ Version: 0.6.3
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.2"
7
+ version = "0.6.3"
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