ruby-oci8 2.2.4-x64-mingw32 → 2.2.4.1-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 010280083c28d75597813659f671e4bca98e7e99
4
- data.tar.gz: 2e114215eea2ae6b51bc8b8ddd5b7d01799268a2
3
+ metadata.gz: 82e5218ddbddb713187c5ecdad192468108ebfaa
4
+ data.tar.gz: 4532c5490b86dcfeeb63f6c0ddcad9dfb5786ae3
5
5
  SHA512:
6
- metadata.gz: 560683e7b62ae50ce57bfa1b34b8a9ed8f6cdc4f43fb9e24ed7fcb48751f9260afbee63a2622bcd6cf111ef155e7873ecdc373b9bfb76186e6e78633f671795f
7
- data.tar.gz: ded2591f700d278d3fd2721584c684fae1f26b60828ea691ef5811c70fee9fc1d13886610fdd06b05efa0f3a9f445ebdc48682f957f9a5face7711fe4b6e57f0
6
+ metadata.gz: 5f3ea7fa9bf63761237ff407920e744105208699acbf003b7c5fe695f44ef57821edaf0f6f60fc8926d94b8cc210902e2850144ef51606d803f99736a1cdb3f4
7
+ data.tar.gz: c309390d0afb15147da71e8b3a0dc6a6e676c910c5242ae74920c224b551ced58c7fd37451e7271e84b5dfa88ed2292bd8dadf0ae9a4caa0ec9cb18bc6b95c45
data/ChangeLog CHANGED
@@ -1,6 +1,21 @@
1
+ 2017-06-17 Kubo Takehiro <kubo@jiubao.org>
2
+ * NEWS: Add changes between 2.2.4 and 2.2.4.1
3
+ * lib/oci8/version.rb: Update to 2.2.4.1
4
+ * lib/oci8/version.rb: Fix URL links
5
+ * docs/hanging-after-inactivity.md: Revised
6
+
7
+ 2017-06-16 Kubo Takehiro <kubo@jiubao.org>
8
+ * ext/oci8/extconf.rb, ext/oci8/hook_funcs.c, ext/oci8/oci8lib.c:
9
+ Fix to pass compilation on cygwin.
10
+ * mkpkg-win32.rb: Add tests on cygwin.
11
+
12
+ 2017-06-16 Kubo Takehiro <kubo@jiubao.org>
13
+ * ext/oci8/hook_funcs.c: Fix the calling convention of setsockopt
14
+ on Windows x86.
15
+
1
16
  2017-06-11 Kubo Takehiro <kubo@jiubao.org>
2
17
  * NEWS: Add changes between 2.2.3 and 2.2.4.
3
- * lib/oci8/version.rb: update to 2.2.3.
18
+ * lib/oci8/version.rb: update to 2.2.4.
4
19
  * docs/ldap-auth-and-function-interposition.md,
5
20
  docs/hanging-after-inactivity.md: updated
6
21
 
data/NEWS CHANGED
@@ -1,5 +1,20 @@
1
1
  # @markup markdown
2
2
 
3
+ 2.2.4.1
4
+ =======
5
+
6
+ Fixed issue
7
+ -----------
8
+
9
+ ### Fix invalid function calls when TCP keepalive time parameter is set on Windows x86
10
+
11
+ When TCP keepalive time parameter is set, The win32 API `setsockopt` was hooked
12
+ with incorrect calling convention on Windows x86. As far as I checked it doesn't
13
+ cause bad effects. But it is by chance. If the code in `oci.dll` is optimized
14
+ differently, it may cause unexpected behavior.
15
+
16
+ ### Fix compilation errors in 2.2.4 on cygwin
17
+
3
18
  2.2.4
4
19
  =====
5
20
 
@@ -6,13 +6,13 @@ Hanging After a Long Period of Inactivity
6
6
  When a database connection hangs after a long period of inactivity,
7
7
  this document may help you.
8
8
 
9
- When a firewall resides between Oracle database server and client, the
10
- firewall sometimes drops inactive connections as dead ones. If a
9
+ When a firewall or a NAT proxy resides between Oracle database server
10
+ and client, it sometimes drops inactive connections as dead ones. If a
11
11
  client connects to an Oracle server and tries to use the connection
12
- after a long sleep (> 1 hour), the client may hang due to the
12
+ after a long sleep (> 1 hour), the client may hang in an effort to use the
13
13
  dropped connection. This issue will be solved by setting TCP keepalive
14
14
  packets whose keepalive time parameter is smaller than the inactive
15
- connection timeout in the firewall.
15
+ connection timeout.
16
16
 
17
17
  TCP keepalive is enabled by [(ENABLE=broken)][] in a connect
18
18
  descriptor. If you use easy connect naming such as `//hostname/service_name`,
@@ -28,28 +28,29 @@ This is equivalent to the following:
28
28
  conn = OCI8.new(username, password, connect_descriptor)
29
29
 
30
30
  The default TCP keepalive time is two hours, which may be larger
31
- than the inactive connection timeout in the firewall. The default
31
+ than the inactive connection timeout. The default
32
32
  value in the system is configurable via [procfs and sysctl on Linux][]
33
33
  or [registry parameters on Windows][]. If you have no privilege to
34
- customize the system, you can change it in an application layer
35
- by the tcp_keepalive_time property.
34
+ customize the system, you can change per-connection keepalive time
35
+ by the `tcp_keepalive_time` property.
36
36
 
37
37
  OCI8.properties[:tcp_keepalive_time] = 600 # 10 minutes
38
38
 
39
- `OCI8.properties[:tcp_keepalive_time]` is supported on the following
40
- platforms since ruby-oci8 2.2.4.
39
+ It is supported on the following platforms since ruby-oci8 2.2.4.
41
40
 
42
41
  * Linux i386 and x86_64
43
42
  * macOS
44
43
  * Windows x86 and x64
45
44
  * Solaris x86_64
46
45
 
46
+ When it is set on unsupported platforms, you get `NotImplementedError`.
47
+
47
48
  This feature is implemented with hackish way. When
48
49
  `tcp_keepalive_time` is set, Oracle client library's
49
50
  procedure linkage table is modified to intercept [setsockopt][] system
50
- calls. When Oracle client library issues a system call which enables
51
- TCP keepalive, ruby-oci8 changes the TCP keepalive time of the
52
- connection immediately after the system call.
51
+ call. When Oracle client library issues the system call which enables
52
+ TCP keepalive, [ruby-oci8 changes][] the per-connection TCP keepalive time
53
+ immediately.
53
54
 
54
55
  I hope that Oracle adds a new OCI handle attribute to support this
55
56
  feature natively in the future.
@@ -59,3 +60,4 @@ feature natively in the future.
59
60
  [registry parameters on Windows]: https://blogs.technet.microsoft.com/nettracer/2010/06/03/things-that-you-may-want-to-know-about-tcp-keepalives/
60
61
  [plthook]: https://github.com/kubo/plthook
61
62
  [setsockopt]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html
63
+ [ruby-oci8 changes]: https://github.com/kubo/ruby-oci8/blob/ruby-oci8-2.2.4/ext/oci8/hook_funcs.c#L302-L318
@@ -177,13 +177,13 @@ class OCI8
177
177
  #
178
178
  # [:tcp_keepalive]
179
179
  #
180
- # See {file:docs/hanging-after-inactivity.md.md}
180
+ # See {file:docs/hanging-after-inactivity.md}
181
181
  #
182
182
  # *Since:* 2.2.4
183
183
  #
184
184
  # [:tcp_keepalive_time]
185
185
  #
186
- # See {file:docs/hanging-after-inactivity.md.md}
186
+ # See {file:docs/hanging-after-inactivity.md}
187
187
  #
188
188
  # *Since:* 2.2.4
189
189
  #
data/lib/oci8/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class OCI8
2
- VERSION = "2.2.4"
2
+ VERSION = "2.2.4.1"
3
3
  end
data/lib/oci8lib_200.so CHANGED
Binary file
data/lib/oci8lib_210.so CHANGED
Binary file
data/lib/oci8lib_220.so CHANGED
Binary file
data/lib/oci8lib_230.so CHANGED
Binary file
data/lib/oci8lib_240.so CHANGED
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-oci8
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 2.2.4.1
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Kubo Takehiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-11 00:00:00.000000000 Z
11
+ date: 2017-06-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  ruby-oci8 is a ruby interface for Oracle using OCI8 API. It is available with Oracle 10g or later including Oracle Instant Client.