es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Módulo de extensión de SAP ASE para Python: @stmt_query_timeout

Estoy intentando cambiar de una solución pyodbc basada en Windows (usando el controlador SAP Adaptive Server Enterprise 16.0) a una solución basada en Red Hat Linux 7.9 utilizando sybpydb.

Solución actual de pyodbc:

connection = pyodbc.connect(
   "Driver={Adaptive Server Enterprise};NetworkAddress=<servername,serverport>;
    Database=<database>;UID={<username>};PWD={<password>};@pool_size=10;
    stmtquery_timeout=1200;@login_timeout=30;@connection_timeout=30")
df = pandas.read_sql_query("exec <storedproc_name>")
connection.close()

Estoy intentando replicar esto en Linux utilizando el paquete sybclient-16.0.3-2.

import sybpydb

connection = sybpydb.connect(user=username, password=password, servername=servername,
                             dsn="HostName=<hostname>;Database=<database>;LoginTimeout=30;Timeout=30")

curr = connection.cursor()
result = cursor.execute("exec <storedproc_name>")

El pasar @stmtquery_timeout=1200 hace que la conexión falle. Pero sin esto, la llamada al stored proc se agotará. No puedo ver nada al respecto en la documentación.

Gracias de antemano.</servername,serverport>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el parámetro smtmquery_timeout es específico del controlador pyodbc y puede que no sea compatible con el paquete sybpydb. Es posible que necesite encontrar una forma alternativa de establecer el tiempo de espera de la consulta para su procedimiento almacenado.

    Una opción sería establecer el tiempo de espera de la consulta dentro del propio procedimiento almacenado, utilizando el comando SET QUERY_TIMEOUT. Esto anulará cualquier tiempo de espera establecido en el lado del cliente. Alternativamente, puede intentar establecer el tiempo de espera de la consulta utilizando un parámetro o variable de entorno diferente dentro del paquete sybpydb.

    También es posible que el problema de tiempo de espera esté relacionado con un problema de configuración de red o servidor, en lugar de un problema del controlador. Es posible que desee consultar con sus administradores de red y base de datos para ver si hay alguna configuración que deba ajustarse para el entorno de Red Hat Linux.

    En general, puede llevar algo de prueba y error encontrar la mejor solución para su configuración específica.

Comments are closed.