1. 程式人生 > >PLSQL 經常自動斷開失去連線的解決過程

PLSQL 經常自動斷開失去連線的解決過程

               

問題背景:

情況是這樣的,很多開發同事的plsql上班時間開著8個小時,有時候他們出去抽菸後或者中午吃完飯,回來在plsql上面執行就報錯無響應,然後卡住了半天動彈不了,非得重新登入plsql才生效,我猜猜是因為連線失效的緣故,經常碰到這種情況,還沒有影響工作效率和工作心情的。

1,去檢視以下CONNECT_TIME的連線時間

SQL> select * from dba_profiles t wheret.resource_name='CONNECT_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE_TYPE LIMIT

-------------------------------------------------------------- -----------------------------------------------------

DEFAULT                        CONNECT_TIME                     KERNEL        UNLIMITED

MONITORING_PROFILE             CONNECT_TIME                     KERNEL        DEFAULT

TMPOPT                         CONNECT_TIME                     KERNEL        DEFAULT

MYPROFILE                      CONNECT_TIME                     KERNEL        DEFAULT

SQL>

看到有4個,那如何找到powerdesk使用者所屬於的那個profile呢?去檢視當前使用者的CONNECT_TIME

SQL> select * from user_resource_limits;

RESOURCE_NAME                    LIMIT

------------------------------------------------------------------------

COMPOSITE_LIMIT                  UNLIMITED

SESSIONS_PER_USER                UNLIMITED

CPU_PER_SESSION                  UNLIMITED

CPU_PER_CALL                     UNLIMITED

LOGICAL_READS_PER_SESSION        UNLIMITED

LOGICAL_READS_PER_CALL           UNLIMITED

IDLE_TIME                        UNLIMITED

CONNECT_TIME                     UNLIMITED

PRIVATE_SGA                      UNLIMITED

9 rows selected

SQL>

看到CONNECT_TIME是UNLIMITED,沒有限制,那麼為什麼plsql連線會出現未響應的現象呢?

2cmd裡面去用sqlplus連線驗證

sqlplus連線上,過去30分鐘不操作,再次操作連線db,正常使用,看來這和oracledb無關了,應該要去看看plsql的設定了

3,去plsql裡面設定

進入plsql的Tools,再進入Preferences,然後選擇左邊的Connection選型,選擇Check connection,如下圖1.png所示:

這會比較穩定一些,當然可能你plsq開一天不用,再進去會延時一會,但是短時間裡面都不會失靈了。

PS:後續問題,plsql不斷開連線,但是你關閉以前開啟的執行檔案或者sql視窗還是會卡住,報未響應的情況,這種只要強行關閉plsql重新開啟登入了。