0

We have Amazon Web Services (AWS) Database Migration Service (DMS) tasks erroring out against an on premises Oracle 11.2.0.3 database with ORA-03135 errors. Our network traffic between AWS and the database goes through AWS's Gateway Load Balancer (GWLB). In an AWS support case about Debezium we learned that their GWLB has a 350 second timeout that silently drops idle connections on the AWS side while killing them properly on the on premises side. We know that DMS normally communicates with our on premises database more frequently than every 350 seconds but today we seem to have hit the timeout during a period of heavy activity like a large initial load. Oracle's support site says that setting SQLNET.EXPIRE_TIME=5 in our sqlnet.ora on the database server may prevent the 350 second timeout because the 5 minute expire_time setting is less than the almost 6 minute timeout. But Oracle's document also says that expire_time does not work in all cases.

My question is whether anyone has experienced this scenario and knows whether setting the sqlnet.expire_time=5 will help with AWS DMS and AWS GWLB and its 350 second timeout?

Also, are there any TCP Keepalive settings that we could set within DMS to overcome this timeout?

Thanks!

Bobby

3
  • My blog post about this issue with Debezium: bobbydurrettdba.com/2022/03/25/… Jun 15 at 23:15
  • I have a Java script on my dev Debezium server which recreates the timeout issue. I tried setting SQLNET.EXPIRE_TIME=5 on the database it connects to and connecting without (ENABLE=BROKEN) in my connection URL but that did not fix the timeout. So, I believe that SQLNET.EXPIRE_TIME=5 will not resolve the timeout issue but I have not been able to test it directly. I cannot set (ENABLE=BROKEN) in DMS so I was looking for a fix that didn't require it. Jun 15 at 23:19
  • I did have a crazy thought based on some DMS documentation that I might be able to setup an EC2 as a proxy server and set the os parameter net.ipv4.tcp_keepalive_time=60 on the proxy server and somehow slip in (ENABLE=BROKEN) onto the connection to the database. But I am not sure that is possible. Jun 15 at 23:21

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.