Closed DeltaMichael closed 2 months ago
Note: I also tried this in my CI on alpine linux with an oracle docker container running on localhost. I get the same issue. Passing localhost:1521/FREE
works, but passing it as separate parameters does not.
The two examples you show are not the same! In the first one you have additional parameters (four of them). The one that matters, however, is the protocol
parameter. Using protocol tcp
(the default) with a cloud database that expects tcps
will result in the server rejecting the connection!
I am facing same error The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.496.0_x64qbz5n2kfra8p0\Lib\threading.py", line 1073, in _bootstrap_inner
self.run()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.496.0_x64qbz5n2kfra8p0\Lib\threading.py", line 1010, in run
self._target(*self._args, self._kwargs)
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, *kwargs)
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\core\management\commands\runserver.py", line 136, in inner_run
self.check_migrations()
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\core\management\base.py", line 574, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\migrations\executor.py", line 18, in init
self.loader = MigrationLoader(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\migrations\loader.py", line 58, in init
self.build_graph()
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\migrations\loader.py", line 235, in build_graph
self.applied_migrations = recorder.applied_migrations()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\migrations\recorder.py", line 89, in applied_migrations
if self.has_table():
^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\migrations\recorder.py", line 63, in has_table
with self.connection.cursor() as cursor:
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\utils\asyncio.py", line 26, in inner
return func(args, kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\backends\base\base.py", line 316, in cursor
return self._cursor()
^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\backends\base\base.py", line 292, in _cursor
self.ensure_connection()
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\backends\base\base.py", line 274, in ensure_connection
with self.wrap_database_errors:
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\utils.py", line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\backends\base\base.py", line 275, in ensure_connection
self.connect()
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, *kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\backends\base\base.py", line 256, in connect
self.connection = self.get_new_connection(conn_params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\utils\asyncio.py", line 26, in inner
return func(args, kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\django\db\backends\oracle\base.py", line 251, in get_new_connection
return Database.connect(
^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\oracledb\connection.py", line 1134, in connect
return conn_class(dsn=dsn, pool=pool, params=params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\oracledb\connection.py", line 523, in init
impl.connect(params_impl)
File "src\oracledb\impl/thin/connection.pyx", line 449, in oracledb.thin_impl.ThinConnImpl.connect
File "src\oracledb\impl/thin/connection.pyx", line 445, in oracledb.thin_impl.ThinConnImpl.connect
File "src\oracledb\impl/thin/connection.pyx", line 411, in oracledb.thin_impl.ThinConnImpl._connect_with_params
File "src\oracledb\impl/thin/connection.pyx", line 392, in oracledb.thin_impl.ThinConnImpl._connect_with_description
File "src\oracledb\impl/thin/connection.pyx", line 358, in oracledb.thin_impl.ThinConnImpl._connect_with_address
File "C:\Users\amitn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\oracledb\errors.py", line 162, in _raise_err
raise exc_type(_Error(message)) from cause
django.db.utils.OperationalError: DPY-6005: cannot connect to database (CONNECTION_ID=vy3/RIJitGRILqYZSjVpiQ==).
DPY-4011: the database or network closed the connection
[WinError 10054] An existing connection was forcibly closed by the remote host
Help: https://python-oracledb.readthedocs.io/en/latest/user_guide/troubleshooting.html#dpy-4011
i am using Oracle Cloud Database,
Settings i had made are
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'db001_high',
'USER': 'database_user',
'PASSWORD': 'passoword_to_connect',
'HOST': '
apart from this. I had set ORACLE_HOME= instantclient address and TNS_ADMIN = wallet_db01 but nothing work.
search in google , one place they ask to NNE enable, after running i found it NNE enabled. Kindly suggest where i am making error or missing anything else.
Thank you
@amitdumka, your error is due to the fact that NNE is enabled and thin mode doesn't support it. You will have to enable thick mode to connect.
thanks for reply, I tried to enable thick mode , I got error of django.db.utils.DatabaseError: ORA-12547: TNS:lost contact
i called oracledb.init_oracle_client(lib_dir=r("c:\oracle\instantclient_21_13") even set ORACLE_HOME=c:\oracle\instantclient_21_13 even tried change location of method path also. but error is same. i can run python code directly like oracledb.init_oracle_client(lib_dir=r("c:\oracle\instantclient_21_13") oracle.connect(parms) i can fetch tables data. but not in django
That error (ORA-12547: TNS:lost contact
) is likely due to the fact that you attempted to connect to a server that requires the TCPS
protocol using the default TCP
protocol. How did you populate your parms
variable?
Closing - no activity.
Cannot connect to database when I pass host, port, etc. to the
connect()
function as separate kwargsNo