Skip to content

Commit cd7b06e

Browse files
committed
Added support for connection retry params. These params are passed to Python driver
- retry_count -> Number of times to retry - retry_delay -> delay (seconds) in between each retry
1 parent 217ae59 commit cd7b06e

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

dbt/adapters/oracle/connections.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ class OracleAdapterCredentials(Credentials):
7070
cclass: Optional[str] = None
7171
purity: Optional[str] = None
7272

73+
# Connection retry params
74+
retry_count: Optional[int] = 1
75+
retry_delay: Optional[int] = 3
76+
7377

7478
_ALIASES = {
7579
'dbname': 'database',
@@ -93,7 +97,8 @@ def _connection_keys(self) -> Tuple[str]:
9397
'protocol', 'host', 'port', 'tns_name',
9498
'service', 'connection_string',
9599
'shardingkey', 'supershardingkey',
96-
'cclass', 'purity'
100+
'cclass', 'purity', 'retry_count',
101+
'retry_delay'
97102
)
98103

99104
@classmethod
@@ -125,7 +130,7 @@ def get_dsn(self) -> str:
125130
return self.connection_string
126131

127132
# Assume host connection method OracleConnectionMethod.HOST and necessary parameters are defined
128-
return f'{self.protocol}://{self.host}:{self.port}/{self.service}'
133+
return f'{self.protocol}://{self.host}:{self.port}/{self.service}?retry_count={self.retry_count}&retry_delay={self.retry_delay}'
129134

130135

131136
class OracleAdapterConnectionManager(SQLConnectionManager):

dbt_adbs_test_project/profiles.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ dbt_test:
1111
service: "{{ env_var('DBT_ORACLE_SERVICE') }}"
1212
#database: "{{ env_var('DBT_ORACLE_DATABASE') }}"
1313
schema: "{{ env_var('DBT_ORACLE_SCHEMA') }}"
14+
retry_count: 1
15+
retry_delay: 5
1416
shardingkey:
1517
- skey
1618
supershardingkey:

0 commit comments

Comments
 (0)