2009/1/22 ROBSON VIRINO - GEINF <rvir...@cagece.com.br>

> Olá, amigos.
>
> Mantenho um site que faz acesso ao Oracle via conector cx_oracle.
> O acesso aos dados é tranquilo. O problema é que, volta e meia, dá esse
> erro aí de baixo... sem que eu tenha mexido em nada no banco ou no
> Plone. Aí, só conserta reiniciando o serviço.
> O que poderia ser isso? O que pode fazer o Plone se desconectar do Banco
> de Dados, sem que haja nenhuma intervenção física.?
>
> Site Error
>
> An error was encountered while publishing this resource.
>
> cx_Oracle.OperationalError
> Sorry, a site error occurred.
>
> Traceback (innermost last):
>
>    * Module ZPublisher.Publish, line 202, in publish_module_standard
>    * Module ZPublisher.Publish, line 161, in publish
>    * Module Zope2.App.startup, line 241, in abort
>    * Module transaction._manager, line 107, in abort
>    * Module transaction._transaction, line 569, in abort
>    * Module transaction._transaction, line 642, in abort
>    * Module Shared.DC.ZRDB.TM, line 64, in abort
>    * Module Products.ZcxOracleDA.db, line 47, in _abort
>
> OperationalError: ORA-03114: nao conectado ao ORACLE
>
>
> --------------------------
> cx_Oracle 4.3.1
> Oracle 9i
> Plone 3.0.6
> Zope 2.10.5
>
>
> Obrigado,
>
>
Robson,

Eu uso Zope com Oracle já faz alguns anos e sempre enfrentei esse problema.
Entretanto eu utilizo o conector DC Oracle2, que já é bem antiguinho.  Nunca
consegui contornar o erro, mas suspeito que o problema não está no conector
(pelo menos não totalmente).  Creio que o problema é gerado pelo Oracle que,
por alguma configuração, "derruba" a conexão depois de algum tempo ou por
algum outro motivo.

O manual do Oracle descreve esse erro da seguinte forma:

*ORA-03114 not connected to ORACLE*

*Cause:* A call to Oracle was attempted when no connection was established.
Usually this happens because a user-written program has not logged on. It
may happen if communication trouble causes a disconnection. In addition,
this message could occur when ALTER SYSTEM KILL SESSION or ALTER SYSTEM
DISCONNECT SESSION were issued with the IMMEDIATE qualifier because, in
those cases, the client's connection to the database is terminated without
waiting for the client to issue a request.

*Action:* Try again. If the message recurs and the program is user written,
check the program.

Aliás, se não me engano, o Tom escreveu a primeira versão do ZcxOracleDA
justamente por causa desse problema de desconexão.  Aparentemente, o
problema não foi resolvido.

Caso você use Windows, há dois outros conectores que você pode testar:
a) o mxODBC da eGenix, que é pago
b) ZPyODBCDA, que usa a licença GPL

Abraços,

Zénrique.

Responder a