Ìṣẹ́jú mẹ́ẹ̀dógún àti márùn-ún iṣẹ́ dátà tí ó wúlò kò fi kún ọ̀rọ̀ jáde, àti láti ọ̀dọ̀ gbogbo ẹ̀rọ tí ó wà lójú ọ̀nà ìṣàn yẹn dàbí ẹni tí kò ṣiṣẹ́. Ipò tí kò ṣiṣẹ́ ni a ń kó jọ. Ìròyìn lẹ́yìn náà máa ń ní ìrísí kan náà: ìbéèrè náà ń ṣiṣẹ́, lẹ́yìn náà ìpàdé náà pòórá, àti èsì kò dé rí.

Ìwádìí mẹ́rin ni ó ń pinnu bóyá ìpàdé ìdákẹ́jẹ́ yóò yè, wọ́n sì ń lọ láti socket jáde. Ṣe wọ́n ní ìtòlẹ́sẹẹsẹ, nítorí ọ̀kọ̀ọ̀kan gbà pé ìpele tí ó ṣáájú ń ṣe iṣẹ́ rẹ̀.

Ìṣàn wo ni ó ń dákẹ́

Ìsopọ̀ tí ó ṣe pàtàkì ni èyí tí ó ń gbé ìrìnàjò dátà, tí a mọ̀ nípasẹ̀ àwọn àdírẹ́sì àti ibùdó rẹ̀ fúnra rẹ̀. Kò sí ohun mìíràn tí ó ń sọ di tuntun. Ping sí ẹnubodè, ìsopọ̀ SQL kejì láti inú host kan náà àti ìlù ọkàn ti tunnel fúnra rẹ̀ jẹ́ àwọn ìṣàn ọ̀tọ̀ọ̀tọ̀ pẹ̀lú ipò ọ̀tọ̀ọ̀tọ̀ lórí gbogbo ẹ̀rọ tí ó ń tẹ̀lé wọn.

ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes

Àkójọ socket fi àwọn aago àti ipò ìlà hàn fún ìsopọ̀ alààyè, èyí tí ó sọ púpọ̀ ju ìdánwò ìdè lọ. Àwọn iye sysctl ni àwọn àkọ́kọ́ kernel fún ìhùwàsí keepalive, àti apá tí ó tẹ̀lé ń ṣàlàyé ìdí tí wọn kò fi lè lò fún ìpàdé rẹ rí. Àkọ́kọ́ tí kò ṣiṣẹ́ rí kò ṣeé yàtọ̀ sí kíkò àkọ́kọ́ rárá.

Kọ àwọn àdírẹ́sì, ibùdó àti ojú-ọ̀nà tí ìsopọ̀ náà ń lò. Nígbà tí ìpàdé bá kú, àwọn àlàyé wọ̀nyí ni ó máa ń jẹ́ kí o lè béèrè lọ́wọ́ ẹ̀rọ tòótọ́ ohun tí ó ṣe, dípò béèrè bóyá nẹ́tíwọ́kì wà níṣẹ́.

Bóyá ìlànà àìṣiṣẹ́ ń parí tàbí ń dín kù

Ìlànà méjì ń mú àmì kan náà wá, wọ́n sì nílò ìdáhùn tí ó yàtọ̀. Àkókò àìṣiṣẹ́ ń yọ ipò tí ìrìnàjò tí ó yẹ kí ó ṣe é, keepalive sì lè dènà rẹ̀. Ààlà ìpàdé pátápátá ń yọ ìṣàn náà lẹ́yìn àkókò tí ó yẹ bí ó ti wù kí iṣẹ́ wà, kò sì sí keepalive tí ó ń yí i padà.

Béèrè lọ́wọ́ olówó gbogbo alárinà èwo nínú àwọn méjèèjì tí ó ń ṣe. Ògiri iná, ẹ̀rọ NAT, olùdọ́gba ẹrù àti ẹnubodè àwọsánmà lè pa ipò mọ́, wọn kò sì nílò láti fohùn ṣọ̀kan. Èyí tí ó kéré jù ni ó ń gbé àkókò tí o gbọ́dọ̀ borí kalẹ̀.

Ìyàtọ̀ yẹn tún sọ fún ọ nígbà tí o yẹ kí o dá àtúnṣe dúró. Bí ìlànà bá jẹ́ ààlà pátápátá, ojútùú tòótọ́ ni ẹsẹ̀ iṣẹ́ kúkúrú, iṣẹ́ tí a lè tẹ̀síwájú tàbí ìyọ̀ǹdá tí a fọwọ́ sí, ìwádìí tí ó wà nísàlẹ̀ yóò sì fi hàn pé keepalive kò yí ohunkóhun padà.

Yíyí socket tí ó wà lẹ́yìn àwọn àkọ́kọ́ Linux

Keepalive jẹ́ àṣàyàn fún gbogbo socket. Àwọn àkọ́kọ́ kernel ń ṣàlàyé bí ìwádìí ṣe ń hùwà lẹ́yìn tí socket bá ti mú ẹ̀rọ ṣiṣẹ́, wọn kò sì mú un ṣiṣẹ́ fún àwọn ìsopọ̀ tí ó ti wà. Ohun èlò tí kò tíì béèrè rẹ̀ kò ní ìwádìí kankan, ohunkóhun tí àwọn iye sysctl bá sọ.

Nítorí náà gbígbé àwọn nọ́mbà ga kìkì kò yí ohunkóhun padà fún alábàákẹ́gbẹ́ dátà. Ìkójọpọ̀ tàbí ohun èlò gbọ́dọ̀ mú ẹ̀rọ ṣiṣẹ́, níbi tí stack bá sì pèsè ìṣàkóso fún gbogbo ìsopọ̀, ètò tí a dín kù sàn ju ìyípadà fún gbogbo host tí ó kan àwọn iṣẹ́ tí kò ní ìsopọ̀.

Ààlà sí ìwádìí àkọ́kọ́ kì í ṣe àkókò ìparí ìbéèrè pẹ̀lú. Ìsopọ̀ tí ó ní ìlera ń dákẹ́ láàrin àwọn ìwádìí, a sì mọ alábàákẹ́gbẹ́ tí ó kú nípasẹ̀ ààlà àti iye ìwádìí. Kíka àwọn iye mẹ́ta wọ̀nyí gẹ́gẹ́ bí àkókò ìparí kan ń mú ènìyàn dé àwọn ètò tí ó ń mọ̀ ìkùnà lẹ́yìn tàbí ní kánjú. Wọ́n ń ṣàkóso ìmọ̀, kì í ṣe sùúrù ohun èlò.

EXPIRE_TIME jẹ́ ètò dátà, kì í ṣe àtúnṣe nẹ́tíwọ́kì

Oracle Net ń pèsè ẹ̀rọ ìwàláàyè tirẹ̀, tí a ṣètò nínú profile tí ó wúlò fún ìlànà náà dípò fáìlì àìrọ̀tẹ́lẹ̀ tí ó ṣẹlẹ̀ ní orúkọ tí ó jọra. Iye náà ni a ń fi àwọn ìṣẹ́jú hàn.

SQLNET.EXPIRE_TIME = 5

Ète rẹ̀ àkọ́kọ́ ni wíwádìí àwọn ìsopọ̀ tí ó kú ní ẹ̀gbẹ́ olùpèsè, àti lórí àwọn pẹpẹ tí ó ṣe àtìlẹ́yìn fún àwòṣe tí a ti mú dára, ó tún ń ṣàtúnṣe ìhùwàsí TCP keepalive fún àwọn ìsopọ̀ wọ̀nyẹn. Ìwà tí ó wúlò ni yẹn: ìpele dátà lè ṣètò àwọn ìwádìí láìbéèrè lọ́wọ́ ohun èlò alábàákẹ́gbẹ́ kí ó yí padà.

Iye àpẹẹrẹ tí ó wà lókè jẹ́ àṣàyàn tí a ṣe papọ̀ lòdì sí àkókò tí a rò, kì í ṣe àbá. Ìtọ́sọ́nà gbogbogbò tí a kọ sílẹ̀ ni ààlà tí ó gùn, iye tòótọ́ sì sinmi lórí ìmúṣẹ tí a fi sórí ẹ̀rọ, iye ìwádìí tí o gbà àti àwọn ìlànà ìsọdọ̀tun gidi lórí ọ̀nà. Fi ètò náà sínú profile tí ìlànà tí ó kan ń kà, kí o sì jẹ́rìí pé ìlànà náà ti gbà á. Oracle ń kọ àwọn ibi profile àti ìhùwàsí ìwádìí sínú ìtọ́kasí àwọn paramita.

Dán ààlà ìdákẹ́jẹ́ wò, lẹ́yìn náà ṣètò ìmúláradá

Jẹ́ kí ìsopọ̀ tuntun tí a gbà láàyè kọjá àkókò ìdákẹ́jẹ́ tí ó gùn ju àkókò tí o ń gbìyànjú láti borí lọ, kí o sì wo ìrìnàjò ìwàláàyè àti èsì ohun èlò. Má gba àkóónú ẹrù tí o kò nílò; àwọn aago àti ipò ìsopọ̀ ń dá ìbéèrè náà lóhùn.

ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"

Bí ìpàdé bá ṣì pòórá, àkókò náà jẹ́ ti ẹ̀rọ tí o kò tíì béèrè lọ́wọ́, tàbí ìlànà jẹ́ ààlà pátápátá. Bí ó bá yè, ṣàkọsílẹ̀ ìpele tí ó yí padà kí iṣẹ́ ìdákẹ́jẹ́ tí ó tẹ̀lé má baà tún ìwádìí ṣe.

Níkẹyìn, pinnu ohun tí yóò ṣẹlẹ̀ nígbà tí ìsopọ̀ bá já ní tòótọ́, nítorí àwọn ìwádìí ìwàláàyè ń dín ìgbafẹ́ kù, wọn kò sì mú àǹfààní kúrò rí. Fi èsì tí a kọsílẹ̀ fún iṣẹ́ dátà náà múlẹ̀ kí o tó tún un ránṣẹ́: pípàdánù ìdáhùn kò jẹ́rìí ohunkóhun nípa bóyá iṣẹ́ náà ti jẹ́ ìmúdájú. Fún ohunkóhun tí ó gbọ́dọ̀ yè nígbà tí kọ̀ǹpútà alágbèéká bá pàdé tàbí tí tunnel bá tún bẹ̀rẹ̀, iṣẹ́ tí ó jẹ́ ti olùpèsè pẹ̀lú èsì tí ó dúró ṣinṣin ni àpẹẹrẹ tí ó lágbára jù, keepalive kì í sì ṣe olùṣètò àkókò.

Àwọn àpilẹ̀kọ tó jọra