Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 20, 2011 14:27:39

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Постоянная ошибка TNS прослушивателя

Здравствуйте питонеры.
Есть программа, которая пишется сейчас для взаимодействия с БД Оракл.

Так вот, при выполнении 60-70 паралельных селектов, выдается ошибка ORA-12520.

Также, если открыть программу два или три раза, во время отладки оной, и выполнять различные селекты (в программе же), то опять выскакивает данная ошибка, убиваем все открытые процессы программ и ошибка не появляется пока опять не накопится много процессов программ.

Код который связан с БД:

Функция выполняющая селекты и count.
В нее поступает where из списка where0 - where11, каждый список whereN состоит из 2-10 условий.

def count(where):
connection = data_info.data_info().connection
cursor = cx_Oracle.Cursor(connection)
Table = data_info.data_info().Get_Table()
Schema = data_info.data_info().Get_Schema()
sql = "select count(*) from %s.%s where %s" % (Schema, Table, where)
cursor.execute(sql)
count=cursor.fetchall()
cursor.close()
connection.close()
return count
Открытие БД.
def OpenDB(dblogin,dbpass,dbtns):
try:
import cx_Oracle
except ImportError,info:
error = ("Import Error: %s" % (info))
msgbox.Error(error)
exit()

if cx_Oracle.version<'3.0':
error = ("Very old version of cx_Oracle : %s" % (cx_Oracle.version))
msgbox.Error(error)
exit()

try:
connection = cx_Oracle.connect("%s/%s@%s" % (dblogin, dbpass, dbtns))
except cx_Oracle.DatabaseError, info:
error = ("Database Error: %s" % (info))
msgbox.Error(error)
exit()

return connection
Функция вытаскивающая имена всех таблицы.
def Get_DB_Tables(connection, SelSchema):
cursor = cx_Oracle.Cursor(connection)
sql = ("select TABLE_NAME from dba_tables WHERE OWNER = '%s'" % (SelSchema))
cursor.execute(sql)
tables = cursor.fetchall()
return tables
cursor.close()
функция вытаскивающая дату
def Get_Data(connection, Table, Schema):
cursor = cx_Oracle.Cursor(connection)
sql = ("select * from %s.%s" % (Schema, Table))
cursor.execute(sql)
data = cursor.fetchall()
cursor.close()
data = list(chain(*data))
data = len(data)
return data
Все функции выполняются в программе по 2-3 раза за запуск программы.



Офлайн

#2 Дек. 22, 2011 16:13:54

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Постоянная ошибка TNS прослушивателя

up. Очень нужна помощь, скоро преддипломный проект сдавать..



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version