SQLAlchemy version 0.7.1
MySQL Ver 14.12 Distrib 5.0.77
We have a series of tables with one to many connections:
A -> B -> C -> D->E etc.
Script1 has a big for loop over several hundred/thousand values. In
each loop iteration it goes through A,B,C, makes some new entries,
then calls Function1 (passing some ids from A,B,C).
Function1 makes a new entry in D, then calls Function2 (passing ids
from A,B,C,D).
Function2 makes modification to the entry in D and makes several new
entries in E.
Not far into the loop we get an error saying the MySQL database has
run out of connections:
(Operational Error) (1040, 'Too many connections')
I suspect this is due to me mishandling sessions, and I've included
the likely relevant snippets of code below. Am I doing something
obviously incorrect? The goal in the near future is to have Function1
submit Function2 as a job to a cluster with PBS, so Function2 needs to
independently access the database. Thanks!
In Script1:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import database_classes as dc
database_url = ....
engine = create_engine(database_url, echo=False)
dc.Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
....
for fname in dirList:
session = Session()
....
Function1(database_url,....)
In Function1:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import database_classes as dc
engine = create_engine(database_url, echo=False)
Session = sessionmaker(bind=engine)
session = Session()
.....
Function2(database_url, ....)
....
session.close()
In Function2:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import database_classes as dc
engine = create_engine(database_url, echo=False)
Session = sessionmaker(bind=engine)
session = Session()
....
session.close()
Database classes:
https://github.com/jeffalstott/research_code/blob/master/database_classes.py
Script1:
https://github.com/jeffalstott/research_code/blob/master/MRC_avalanche_analyses.py
Functions:
https://github.com/jeffalstott/research_code/blob/master/criticality.py
Function1 is "avalanche_analyses"
Function2 is "avalanche_statistics"
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.