ruby-oci8 2.1.7-x86-mingw32 → 2.1.8-x86-mingw32
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.
- data/ChangeLog +136 -0
- data/NEWS +61 -0
- data/README.md +2 -2
- data/VERSION +1 -1
- data/dist-files +5 -0
- data/docs/install-instant-client.md +2 -0
- data/lib/oci8.rb +2 -2
- data/lib/oci8/cursor.rb +1 -1
- data/lib/oci8/oci8.rb +71 -0
- data/lib/oci8/properties.rb +18 -3
- data/lib/oci8lib_18.so +0 -0
- data/lib/oci8lib_191.so +0 -0
- data/lib/oci8lib_200.so +0 -0
- data/lib/oci8lib_210.so +0 -0
- data/lib/oci8lib_220.so +0 -0
- data/test/test_connection_pool.rb +1 -1
- metadata +5 -4
data/ChangeLog
CHANGED
@@ -1,3 +1,139 @@
|
|
1
|
+
2015-04-04 Kubo Takehiro <kubo@jiubao.org>
|
2
|
+
* NEWS: add changes between 2.1.7 and 2.1.8.
|
3
|
+
* VERSION: update to 2.1.8.
|
4
|
+
* dist-files: add new files.
|
5
|
+
|
6
|
+
2015-04-04 Kubo Takehiro <kubo@jiubao.org>
|
7
|
+
* ext/oci8/extconf.rb, ext/oci8/oci8.h: Add a macro for old rubies which
|
8
|
+
don't have rb_str_set_len().
|
9
|
+
* ext/oci8/hook_funcs.c: Suppress a warning.
|
10
|
+
|
11
|
+
2015-04-04 Kubo Takehiro <kubo@jiubao.org>
|
12
|
+
* ext/oci8/lob.c: Increase the buffer size to read a LOB.
|
13
|
+
|
14
|
+
2015-04-04 Kubo Takehiro <kubo@jiubao.org>
|
15
|
+
* docs/install-instant-client.md, ext/oci8/lob.c, ext/oci8/metadata.c,
|
16
|
+
ext/oci8/oci8.c: Update documents for YARD.
|
17
|
+
|
18
|
+
2015-04-02 Kubo Takehiro <kubo@jiubao.org>
|
19
|
+
* ext/oci8/lob.c: Fix SEGV when a temporary LOB is freed by GC
|
20
|
+
while reading another lob and the ruby version is 2.0.0 or
|
21
|
+
upper.
|
22
|
+
|
23
|
+
2015-03-01 Kubo Takehiro <kubo@jiubao.org>
|
24
|
+
* lib/oci8/cursor.rb, lib/oci8/properties.rb:
|
25
|
+
Fix errors while generating documents by yard such as
|
26
|
+
"Exception occurred while generating 'OCI8/Cursor.html'."
|
27
|
+
|
28
|
+
2015-03-01 Kubo Takehiro <kubo@jiubao.org>
|
29
|
+
* ext/oci8/oci8.c, ext/oci8/oci8.h: Rollback transactions on
|
30
|
+
logoff only when the transactions are in progress.
|
31
|
+
|
32
|
+
2015-01-27 Kubo Takehiro <kubo@jiubao.org>
|
33
|
+
* ext/oci8/ocihandle.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
|
34
|
+
ext/oci8/stmt.c: Suppreess warnings: "[warn]: @param tag has unknown parameter name: xxx"
|
35
|
+
by yard.
|
36
|
+
|
37
|
+
2015-01-20 Kubo Takehiro <kubo@jiubao.org>
|
38
|
+
* lib/oci8/oci8.rb: Add OCI8#send_timeout, OCI8#send_timeout=,
|
39
|
+
OCI8#recv_timeout and OCI8#recv_timeout=.
|
40
|
+
|
41
|
+
2015-01-20 Kubo Takehiro <kubo@jiubao.org>
|
42
|
+
* ext/oci8/hook_funcs.c, ext/oci8/oci8.c, ext/oci8/oci8.h:
|
43
|
+
Fix for cancel_read_at_exit on Windows.
|
44
|
+
|
45
|
+
2015-01-20 Kubo Takehiro <kubo@jiubao.org>
|
46
|
+
* ext/oci8/oci8.c, ext/oci8/oci8lib.c, lib/oci8/properties.rb:
|
47
|
+
Add OCI8.properties[:cancel_read_at_exit].
|
48
|
+
|
49
|
+
2015-01-20 Kubo Takehiro <kubo@jiubao.org>
|
50
|
+
* ext/oci8/extconf.rb, ext/oci8/hook_funcs.c, ext/oci8/oci8.c,
|
51
|
+
ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/plthook.h,
|
52
|
+
ext/oci8/plthook_elf.c, ext/oci8/plthook_osx.c,
|
53
|
+
ext/oci8/plthook_win32.c: Cancel read system calls at exit
|
54
|
+
not to block ruby process termination.
|
55
|
+
This works on Linux, OSX and Windows Vista or upper.
|
56
|
+
(github issue #56)
|
57
|
+
|
58
|
+
2015-01-12 Kubo Takehiro <kubo@jiubao.org>
|
59
|
+
* README.md: Fix a broken link.
|
60
|
+
(github issue #67 reported by Zloy)
|
61
|
+
|
62
|
+
2014-12-30 Kubo Takehiro <kubo@jiubao.org>
|
63
|
+
* ext/oci8/lob.c, ext/oci8/oci8lib.c: Revise type checking of LOB.
|
64
|
+
|
65
|
+
2014-12-30 Kubo Takehiro <kubo@jiubao.org>
|
66
|
+
* ext/oci8/bind.c, ext/oci8/connection_pool.c, ext/oci8/lob.c,
|
67
|
+
ext/oci8/metadata.c, ext/oci8/object.c, ext/oci8/oci8.c, ext/oci8/oci8.h,
|
68
|
+
ext/oci8/oci8lib.c, ext/oci8/ocihandle.c, ext/oci8/stmt.c:
|
69
|
+
Add oci8_check_typeddata() and use it instead of oci8_get_handle()
|
70
|
+
and oci8_get_bind().
|
71
|
+
|
72
|
+
2014-12-30 Kubo Takehiro <kubo@jiubao.org>
|
73
|
+
* ext/oci8/oradate.c: Add check_oradate() to check datatype.
|
74
|
+
|
75
|
+
2014-12-30 Kubo Takehiro <kubo@jiubao.org>
|
76
|
+
* ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/object.c, ext/oci8/stmt.c:
|
77
|
+
Add more write barriers.
|
78
|
+
|
79
|
+
2014-12-29 Kubo Takehiro <kubo@jiubao.org>
|
80
|
+
* ext/oci8/bind.c, ext/oci8/connection_pool.c, ext/oci8/lob.c,
|
81
|
+
ext/oci8/metadata.c, ext/oci8/object.c, ext/oci8/oci8.c, ext/oci8/oci8.h
|
82
|
+
ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocihandle.c,
|
83
|
+
ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/stmt.c:
|
84
|
+
Use rb_data_type_t as the base type of oci8_handle_data_type_t.
|
85
|
+
|
86
|
+
2014-12-29 Kubo Takehiro <kubo@jiubao.org>
|
87
|
+
* ext/oci8/bind.c, ext/oci8/connection_pool.c, ext/oci8/lob.c,
|
88
|
+
ext/oci8/metadata.c, ext/oci8/object.c, ext/oci8/oci8.c, ext/oci8/oci8.h
|
89
|
+
ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocihandle.c,
|
90
|
+
ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/stmt.c:
|
91
|
+
Rename vtable and vptr to data_type.
|
92
|
+
|
93
|
+
2014-12-29 Kubo Takehiro <kubo@jiubao.org>
|
94
|
+
* ext/oci8/bind.c, ext/oci8/connection_pool.c, ext/oci8/lob.c,
|
95
|
+
ext/oci8/metadata.c, ext/oci8/object.c, ext/oci8/oci8.c, ext/oci8/oci8.h
|
96
|
+
ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocihandle.c,
|
97
|
+
ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/stmt.c:
|
98
|
+
Add oci8_allocate_typeddata() and use it to allocate OCI objects.
|
99
|
+
|
100
|
+
2014-12-23 Kubo Takehiro <kubo@jiubao.org>
|
101
|
+
* ext/oci8/connection_pool.c, ext/oci8/metadata.c, ext/oci8/object.c,
|
102
|
+
ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/ocihandle.c
|
103
|
+
ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/stmt.c:
|
104
|
+
Add write barriers to use generational GC.
|
105
|
+
|
106
|
+
2014-12-23 Kubo Takehiro <kubo@jiubao.org>
|
107
|
+
* ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/ocihandle.c,
|
108
|
+
ext/oci8/ocinumber.c, ext/oci8/oradate.c:
|
109
|
+
Use TypedData on ruby 1.9.3 and later.
|
110
|
+
|
111
|
+
2014-12-22 Kubo Takehiro <kubo@jiubao.org>
|
112
|
+
* ext/oci8/extconf.rb, ext/oci8/stmt.c: Don't use SYM2ID on ruby 2.2.0
|
113
|
+
or later. Symbols passed to SYM2ID are not GC'ed.
|
114
|
+
|
115
|
+
2014-12-21 Kubo Takehiro <kubo@jiubao.org>
|
116
|
+
* ext/oci8/bind.c, ext/oci8/object.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
|
117
|
+
ext/oci8/ocidatetime.c, ext/oci8/ocihandle.c, ext/oci8/ocinumber.c:
|
118
|
+
Use RARRAY_AREF and RARRAY_CONST_PTR for Generational GC.
|
119
|
+
|
120
|
+
2014-12-06 Kubo Takehiro <kubo@jiubao.org>
|
121
|
+
* ext/oci8/connection_pool.c, ext/oci8/lob.c, ext/oci8/oci8.c,
|
122
|
+
ext/oci8/stmt.c: Fix "RuntimeError:executing in another thread"
|
123
|
+
when a closed connection is used. This bug was introduced by
|
124
|
+
the previous commit.
|
125
|
+
(github issue #64 reported by Yasuo Honda)
|
126
|
+
|
127
|
+
2014-11-16 Kubo Takehiro <kubo@jiubao.org>
|
128
|
+
* ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/connection_pool.c,
|
129
|
+
ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/object.c,
|
130
|
+
ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
|
131
|
+
ext/oci8/ocihandle.c, ext/oci8/stmt.c:
|
132
|
+
Raises an exception when a closed OCI8 object is used.
|
133
|
+
Using a closed cursor causes various problems such as segmentation
|
134
|
+
fault, nil comparison error and so on.
|
135
|
+
(github issue #61 and #62 reported by Mike Bourgeous)
|
136
|
+
|
1
137
|
2014-02-02 Kubo Takehiro <kubo@jiubao.org>
|
2
138
|
* NEWS: add changes between 2.1.7 and 2.1.6.
|
3
139
|
* VERSION: change the version to 2.1.7.
|
data/NEWS
CHANGED
@@ -1,5 +1,66 @@
|
|
1
1
|
# @markup markdown
|
2
2
|
|
3
|
+
2.1.8
|
4
|
+
=====
|
5
|
+
|
6
|
+
New Features
|
7
|
+
------------
|
8
|
+
|
9
|
+
### Send and receive timeouts
|
10
|
+
|
11
|
+
New methods {OCI8#send_timeout}, {OCI8#send_timeout=}, {OCI8#recv_timeout} and {OCI8#recv_timeout=}
|
12
|
+
were added. They are available on Oracle 11.1 or upper.
|
13
|
+
|
14
|
+
Use them at your own risk because they use [undocumented OCI handle attributes](http://blog.jiubao.org/2015/01/undocumented-oci-handle-attributes.html).
|
15
|
+
|
16
|
+
### Cancel read system calls not to prevent ruby process termination
|
17
|
+
|
18
|
+
When network quality is poor and incoming packets are lost irregularly,
|
19
|
+
the ruby process termination may be blocked until TCP keepalive time (2 hours).
|
20
|
+
|
21
|
+
By setting [OCI8.properties[:cancel_read_at_exit]](OCI8.html#properties-class_method)
|
22
|
+
true, read system calls, which may wait incoming packets, are canceled at exit.
|
23
|
+
See: [github issue #56](https://github.com/kubo/ruby-oci8/issues/56)
|
24
|
+
|
25
|
+
This feature is disabled by default because it uses [unusual technique](https://github.com/kubo/plthook)
|
26
|
+
which hooks read system calls issued by Oracle client library and it works only on
|
27
|
+
Linux, Windows and OSX.
|
28
|
+
|
29
|
+
### RGenGC
|
30
|
+
|
31
|
+
Object allocation code is rewritten to use [RGenGC](http://www.infoq.com/news/2013/12/ruby21).
|
32
|
+
|
33
|
+
Fixed Issues
|
34
|
+
------------
|
35
|
+
|
36
|
+
- Raises an exception when a closed OCI8 object is used.
|
37
|
+
Using a closed cursor causes various problems such as segmentation
|
38
|
+
fault, nil comparison error and so on.
|
39
|
+
See: [github issue #61](https://github.com/kubo/ruby-oci8/issues/61)
|
40
|
+
and [github issue #62](https://github.com/kubo/ruby-oci8/issues/62)
|
41
|
+
|
42
|
+
(reported by Mike Bourgeous)
|
43
|
+
|
44
|
+
- Fix "RuntimeError:executing in another thread"
|
45
|
+
when a closed connection is used. This bug was introduced by
|
46
|
+
the previously listed issue.
|
47
|
+
See: [github issue #64](https://github.com/kubo/ruby-oci8/issues/64)
|
48
|
+
|
49
|
+
(reported by Yasuo Honda)
|
50
|
+
|
51
|
+
- Fix SEGV when a temporary LOB is freed by GC while reading another
|
52
|
+
lob and the ruby version is 2.0.0 or upper.
|
53
|
+
|
54
|
+
- Skip rollback on logoff when no transactions are in progress.
|
55
|
+
|
56
|
+
- Fix a broken link in README.md.
|
57
|
+
See: [github issue #67](https://github.com/kubo/ruby-oci8/issues/67)
|
58
|
+
|
59
|
+
(reported by Zloy)
|
60
|
+
|
61
|
+
- Don't use SYM2ID on ruby 2.2.0 or later not to make symbols unGCable
|
62
|
+
by [Symbol GC](http://www.infoq.com/news/2014/12/ruby-2.2.0-released).
|
63
|
+
|
3
64
|
2.1.7
|
4
65
|
=====
|
5
66
|
|
data/README.md
CHANGED
@@ -21,10 +21,10 @@ Connect to scott/tiger, select `emp` and print as CSV format.
|
|
21
21
|
|
22
22
|
If you install a ruby-oci8 gem package, you may need to add `-rubygems` before `-r oci8`.
|
23
23
|
|
24
|
-
|
24
|
+
Documentation
|
25
25
|
=============
|
26
26
|
|
27
|
-
* http://rubydoc.info/gems/ruby-oci8/
|
27
|
+
* http://rubydoc.info/gems/ruby-oci8/
|
28
28
|
|
29
29
|
Installation
|
30
30
|
============
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.8
|
data/dist-files
CHANGED
@@ -29,6 +29,7 @@ ext/oci8/encoding.c
|
|
29
29
|
ext/oci8/env.c
|
30
30
|
ext/oci8/error.c
|
31
31
|
ext/oci8/extconf.rb
|
32
|
+
ext/oci8/hook_funcs.c
|
32
33
|
ext/oci8/lob.c
|
33
34
|
ext/oci8/metadata.c
|
34
35
|
ext/oci8/object.c
|
@@ -42,6 +43,10 @@ ext/oci8/oraconf.rb
|
|
42
43
|
ext/oci8/oradate.c
|
43
44
|
ext/oci8/oranumber_util.c
|
44
45
|
ext/oci8/oranumber_util.h
|
46
|
+
ext/oci8/plthook.h
|
47
|
+
ext/oci8/plthook_elf.c
|
48
|
+
ext/oci8/plthook_osx.c
|
49
|
+
ext/oci8/plthook_win32.c
|
45
50
|
ext/oci8/post-config.rb
|
46
51
|
ext/oci8/stmt.c
|
47
52
|
ext/oci8/thread_util.c
|
@@ -45,6 +45,8 @@ Note:
|
|
45
45
|
* use libclntsh.sl instead of libclntsh.so on HP-UX PA-RISC.
|
46
46
|
* use libclntsh.dylib instead of libclntsh.so on Mac OS X.
|
47
47
|
* skip this step for AIX.
|
48
|
+
* run `yum install libaio` also on Redhat.
|
49
|
+
* run `apt-get install libaio1` also on Ubuntu.
|
48
50
|
|
49
51
|
Set the library search path, whose name depends on the OS, to point to
|
50
52
|
the installed directory.
|
data/lib/oci8.rb
CHANGED
@@ -69,10 +69,10 @@ else
|
|
69
69
|
end
|
70
70
|
require so_basename
|
71
71
|
|
72
|
-
if OCI8::VERSION != '2.1.
|
72
|
+
if OCI8::VERSION != '2.1.8'
|
73
73
|
require 'rbconfig'
|
74
74
|
so_name = so_basename + "." + RbConfig::CONFIG['DLEXT']
|
75
|
-
raise "VERSION MISMATCH! #{so_name} version is #{OCI8::VERSION}, but oci8.rb version is 2.1.
|
75
|
+
raise "VERSION MISMATCH! #{so_name} version is #{OCI8::VERSION}, but oci8.rb version is 2.1.8."
|
76
76
|
end
|
77
77
|
|
78
78
|
require 'oci8/encoding-init.rb'
|
data/lib/oci8/cursor.rb
CHANGED
@@ -55,7 +55,7 @@ class OCI8
|
|
55
55
|
# example:
|
56
56
|
# cursor = conn.parse("SELECT * FROM emp WHERE ename = :ename")
|
57
57
|
# cursor.bind_param(1, 'SMITH') # bind by position
|
58
|
-
#
|
58
|
+
# # ...or...
|
59
59
|
# cursor.bind_param(':ename', 'SMITH') # bind by name
|
60
60
|
#
|
61
61
|
# To bind as number, Fixnum and Float are available, but Bignum is
|
data/lib/oci8/oci8.rb
CHANGED
@@ -384,6 +384,77 @@ class OCI8
|
|
384
384
|
def self.client_charset_name
|
385
385
|
@@client_charset_name
|
386
386
|
end
|
387
|
+
|
388
|
+
if OCI8.oracle_client_version >= OCI8::ORAVER_11_1
|
389
|
+
# Returns send timeout in seconds.
|
390
|
+
# Zero means no timeout.
|
391
|
+
# This is equivalent to {http://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF228 SQLNET.SEND_TIMEOUT} in client-side sqlnet.ora.
|
392
|
+
#
|
393
|
+
# @return [Float] seconds
|
394
|
+
# @see #recv_timeout
|
395
|
+
# @since 2.1.8 and Oracle 11.1
|
396
|
+
def send_timeout
|
397
|
+
# OCI_ATTR_SEND_TIMEOUT = 435
|
398
|
+
@server_handle.send(:attr_get_ub4, 435).to_f / 1000
|
399
|
+
end
|
400
|
+
|
401
|
+
# Sets send timeout in seconds.
|
402
|
+
# Zero means no timeout.
|
403
|
+
# This is equivalent to {http://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF228 SQLNET.SEND_TIMEOUT} in client-side sqlnet.ora.
|
404
|
+
#
|
405
|
+
# If you have trouble by setting this, don't use it because it uses
|
406
|
+
# {http://blog.jiubao.org/2015/01/undocumented-oci-handle-attributes.html an undocumented OCI handle attribute}.
|
407
|
+
#
|
408
|
+
# @param [Float] timeout
|
409
|
+
# @return [void]
|
410
|
+
# @see #recv_timeout=
|
411
|
+
# @since 2.1.8 and Oracle 11.1
|
412
|
+
def send_timeout=(timeout)
|
413
|
+
# OCI_ATTR_SEND_TIMEOUT = 435
|
414
|
+
@server_handle.send(:attr_set_ub4, 435, timeout * 1000)
|
415
|
+
end
|
416
|
+
|
417
|
+
# Returns receive timeout in seconds.
|
418
|
+
# Zero means no timeout.
|
419
|
+
# This is equivalent to {http://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF227 SQLNET.RECV_TIMEOUT} in client-side sqlnet.ora.
|
420
|
+
#
|
421
|
+
# @return [Float] seconds
|
422
|
+
# @see #send_timeout
|
423
|
+
# @since 2.1.8 and Oracle 11.1
|
424
|
+
def recv_timeout
|
425
|
+
# OCI_ATTR_RECEIVE_TIMEOUT = 436
|
426
|
+
@server_handle.send(:attr_get_ub4, 436).to_f / 1000
|
427
|
+
end
|
428
|
+
|
429
|
+
# Sets receive timeout in seconds.
|
430
|
+
# Zero means no timeout.
|
431
|
+
# This is equivalent to {http://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF227 SQLNET.RECV_TIMEOUT} in client-side sqlnet.ora.
|
432
|
+
#
|
433
|
+
# If you have trouble by setting this, don't use it because it uses
|
434
|
+
# {http://blog.jiubao.org/2015/01/undocumented-oci-handle-attributes.html an undocumented OCI handle attribute}.
|
435
|
+
#
|
436
|
+
# @param [Float] timeout
|
437
|
+
# @return [void]
|
438
|
+
# @see #send_timeout=
|
439
|
+
# @since 2.1.8 and Oracle 11.1
|
440
|
+
def recv_timeout=(timeout)
|
441
|
+
# OCI_ATTR_RECEIVE_TIMEOUT = 436
|
442
|
+
@server_handle.send(:attr_set_ub4, 436, timeout * 1000)
|
443
|
+
end
|
444
|
+
else
|
445
|
+
def send_timeout
|
446
|
+
raise NotImplementedError, 'send_timeout is unimplemented in this Oracle version'
|
447
|
+
end
|
448
|
+
def send_timeout=(timeout)
|
449
|
+
raise NotImplementedError, 'send_timeout= is unimplemented in this Oracle version'
|
450
|
+
end
|
451
|
+
def recv_timeout
|
452
|
+
raise NotImplementedError, 'recv_timeout is unimplemented in this Oracle version'
|
453
|
+
end
|
454
|
+
def recv_timeout=(timeout)
|
455
|
+
raise NotImplementedError, 'revc_timeout= is unimplemented in this Oracle version'
|
456
|
+
end
|
457
|
+
end
|
387
458
|
end
|
388
459
|
|
389
460
|
class OCIError
|
data/lib/oci8/properties.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# properties.rb -- implements OCI8.properties
|
2
2
|
#
|
3
|
-
# Copyright (C) 2010-
|
3
|
+
# Copyright (C) 2010-2015 Kubo Takehiro <kubo@jiubao.org>
|
4
4
|
|
5
5
|
#
|
6
6
|
class OCI8
|
@@ -11,7 +11,8 @@ class OCI8
|
|
11
11
|
:bind_string_as_nchar => false,
|
12
12
|
:float_conversion_type => OCI8.__get_prop(1) ? :ruby : :oracle,
|
13
13
|
:statement_cache_size => 0,
|
14
|
-
:events_mode => ((OCI8.__get_prop(2) & 4) != 0) # 4 <- OCI_EVENTS in oci.h
|
14
|
+
:events_mode => ((OCI8.__get_prop(2) & 4) != 0), # 4 <- OCI_EVENTS in oci.h
|
15
|
+
:cancel_read_at_exit => false,
|
15
16
|
}
|
16
17
|
|
17
18
|
if OCI8.oracle_client_version < OCI8::ORAVER_9_2
|
@@ -56,6 +57,9 @@ class OCI8
|
|
56
57
|
else
|
57
58
|
OCI8.__set_prop(2, OCI8.__get_prop(2) & ~4) # unset OCI_EVENTS
|
58
59
|
end
|
60
|
+
when :cancel_read_at_exit
|
61
|
+
val = val ? true : false
|
62
|
+
OCI8.__set_prop(3, val)
|
59
63
|
end
|
60
64
|
super(name, val)
|
61
65
|
end
|
@@ -120,11 +124,22 @@ class OCI8
|
|
120
124
|
#
|
121
125
|
# require 'oci8'
|
122
126
|
# OCI8.properties[:events_mode] = true # works fine.
|
123
|
-
# ... call some OCI methods ...
|
127
|
+
# # ... call some OCI methods ...
|
124
128
|
# OCI8.properties[:events_mode] = true # raises a runtime error.
|
125
129
|
#
|
126
130
|
# *Since:* 2.1.4
|
127
131
|
#
|
132
|
+
# [:cancel_read_at_exit]
|
133
|
+
#
|
134
|
+
# +true+ when read system calls are canceled at exit. Otherwise, +false+.
|
135
|
+
# The default value is +false+ because it uses unusual technique which
|
136
|
+
# hooks read system calls issued by Oracle client library and it works
|
137
|
+
# only on Linux, OSX and Windows.
|
138
|
+
# This feature is added not to block ruby process termination when
|
139
|
+
# network quality is poor and packets are lost irregularly.
|
140
|
+
#
|
141
|
+
# *Since:* 2.1.8
|
142
|
+
#
|
128
143
|
# @return [a customized Hash]
|
129
144
|
# @since 2.0.5
|
130
145
|
#
|
data/lib/oci8lib_18.so
CHANGED
Binary file
|
data/lib/oci8lib_191.so
CHANGED
Binary file
|
data/lib/oci8lib_200.so
CHANGED
Binary file
|
data/lib/oci8lib_210.so
CHANGED
Binary file
|
data/lib/oci8lib_220.so
ADDED
Binary file
|
@@ -105,7 +105,7 @@ class TestConnectionPool < Minitest::Test
|
|
105
105
|
assert_equal(non_blocking ? max_cnt : min_cnt, pool.open_count, msg) # open_count doesn't shrink.
|
106
106
|
assert_equal(0, pool.busy_count, msg)
|
107
107
|
conns[0].ping # make a network roundtrip.
|
108
|
-
sleep(
|
108
|
+
sleep(1)
|
109
109
|
# open_count shrinks.
|
110
110
|
# The decrement count depends on Oracle version.
|
111
111
|
assert_operator(pool.open_count, :<, max_cnt, msg)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-oci8
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 2.1.
|
9
|
+
- 8
|
10
|
+
version: 2.1.8
|
11
11
|
platform: x86-mingw32
|
12
12
|
authors:
|
13
13
|
- Kubo Takehiro
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2015-04-04 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- test/test_oradate.rb
|
91
91
|
- test/test_oranumber.rb
|
92
92
|
- test/test_rowid.rb
|
93
|
+
- lib/oci8lib_220.so
|
93
94
|
- lib/oci8lib_191.so
|
94
95
|
- lib/oci8lib_200.so
|
95
96
|
- lib/oci8lib_18.so
|