teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/10/22 01:47

投稿

退会済みユーザー
answer CHANGED
@@ -3,4 +3,32 @@
3
3
  また、なんらかのロックを確保したセッションが残り続け、システムの稼働に支障をきたす可能性もあるかもしれません。
4
4
 
5
5
  ただし、もし長期的に接続し続けることに明確なリスクがあるのであれば、コネクションプーリング等は実施できないことになるものと考えられます。
6
- ですので、同時接続数制限に達する心配がなく、クライアントからの要求を適切に返せるのでしたら問題は少ないのではないかと思います。
6
+ ですので、同時接続数制限に達する心配がなく、クライアントからの要求を適切に返せるのでしたら問題は少ないのではないかと思います。
7
+
8
+ ---
9
+ 追記:
10
+
11
+ 本件では、ネットワーク接続としてのコネクションと、Oracle Databaseとの接続であるセッションを同時に考えようとしているために複雑となっているのかもしれません。
12
+ 私の説明も、クライアントとサーバー、システムとデータベース、接続やセッション、コネクション等の表記ゆれがあるため、混乱させてしまっているかもしれません。
13
+
14
+ このような場合、OSI基本参照モデルをもとに理解するとわかりやすいかもしれません。
15
+
16
+ [OSI参照モデル - Wikipedia](https://ja.wikipedia.org/wiki/OSI参照モデル)
17
+
18
+ |レイヤー|レイヤー名|
19
+ |:--:|:--:|
20
+ |L7|アプリケーション層|
21
+ |L6|プレゼンテーション層|
22
+ |L5|セッション層|
23
+ |L4|トランスポート層|
24
+ |L3|ネットワーク層|
25
+ |L2|データリンク層|
26
+ |L1|物理層|
27
+
28
+ ここで、Oracle Databaseとの接続に相当するのはL5のセッション層です(たぶん)。
29
+ L6やL7は実際に発行するSQL等のことだと思って頂いて問題無いかと思います。
30
+
31
+ LANケーブルの抜線はL1の切断になります。
32
+ LANケーブルをすぐに挿し直すと、上位層でのリカバリ処理によりネットワーク接続は維持されることが期待されます。
33
+ このようなリカバリが可能なのは、上位層では接続が維持されていると認識しているためでもあります。
34
+ そのため、どちらか一方が強制的に接続を打ち切ったり、低レイヤー層でのネットワーク切断を認識できていなかったりする場合、使用されないセッションが残ってしまうということになります。