Hello list,
I sent this to the ibm_db list yesterday, but no one has responded
yet. Since it's as much ibm_db as SA, I thought I'd try here as well
in case any of you have used an AS400 before. I have ibm_db,
ibm_db_sa, the latest sqlalchemy, and Python 2.7 (latest) installed. I
can talk to SQLite with no trouble, it's talking to this 400 that
won't work. Anyway...

I'm finally ready to hook my app to the 400 instead of the local
SQLite database I've been using for testing. Here's my simple script:

import globals
import logging
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

#set up the sqlalchemy objects
dbEngine = 
create_engine('ibm_db_sa://username:passw...@mysite.com:8471/database')
Session = sessionmaker(bind = dbEngine) #note that's a capital s on Session
session = Session() #lowercase s
base = declarative_base()

def getAllTables():
 dbInspector = inspect(dbEngine)
 for table in dbInspector.get_table_names():
  print table

getAllTables()

When I run that, it waits thirty seconds or so, then tells me there
was an error. I'll paste the entire traceback below. Sorry in
advance--it's pretty long.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\admin\Dropbox\Autodist\jobs>c:\python27\python.exe DBInterface2.py
Traceback (most recent call last):
  File "DBInterface2.py", line 24, in <module>
    getAllTables()
  File "DBInterface2.py", line 18, in getAllTables
    dbInspector = inspect(dbEngine)
  File "c:\python27\lib\site-packages\sqlalchemy\inspection.py", line 63, in ins
pect
    ret = reg(subject)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\reflection.py", line 139
, in _insp
    return Inspector.from_engine(bind)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\reflection.py", line 135
, in from_engine
    return Inspector(bind)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\reflection.py", line 109
, in __init__
    bind.connect().close()
  File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 2018, in
connect
    return self._connection_cls(self, **kwargs)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 72, in __
init__
    if connection is not None else engine.raw_connection()
  File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 2104, in
raw_connection
    self.pool.unique_connection, _connection)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 2078, in
_wrap_pool_connect
    e, dialect, self)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 1405, in
_handle_dbapi_exception_noconnection
    exc_info
  File "c:\python27\lib\site-packages\sqlalchemy\util\compat.py", line 200, in r
aise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\base.py", line 2074, in
_wrap_pool_connect
    return fn()
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 318, in unique_c
onnection
    return _ConnectionFairy._checkout(self)
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 713, in _checkou
t
    fairy = _ConnectionRecord.checkout(pool)
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 480, in checkout

    rec = pool._do_get()
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 1060, in _do_get

    self._dec_overflow()
  File "c:\python27\lib\site-packages\sqlalchemy\util\langhelpers.py", line 60,
in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 1057, in _do_get

    return self._create_connection()
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 323, in _create_
connection
    return _ConnectionRecord(self)
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 449, in __init__

    self.connection = self.__connect()
  File "c:\python27\lib\site-packages\sqlalchemy\pool.py", line 607, in __connec
t
    connection = self.__pool._invoke_creator(self)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\strategies.py", line 97,
 in connect
    return dialect.connect(*cargs, **cparams)
  File "c:\python27\lib\site-packages\sqlalchemy\engine\default.py", line 385, i
n connect
    return self.dbapi.connect(*cargs, **cparams)
  File "c:\python27\lib\site-packages\ibm_db-2.0.6-py2.7.egg\ibm_db_dbi.py", lin
e 588, in connect
    raise _get_exception(inst)
sqlalchemy.exc.OperationalError: (ibm_db_dbi.OperationalError) ibm_db_dbi::Opera
tionalError: [IBM][CLI Driver] SQL30081N  A communication error has been detecte
d. Communication protocol being used: "TCP/IP".  Communication API being used: "
SOCKETS".  Location where the error was detected: "[IP of the 400
server]".  Communicatio
n function detecting the error: "connect".  Protocol specific error code(s): "10
060", "*", "*".  SQLSTATE=08001\r SQLCODE=-30081

(I took out the actual IP). I'm not sure what most of that means, but
it looks like I can't connect to the 400 for some reason. Bad
credentials or something could be it, I suppose, but I'm using what my
work told me to use. I wondered if anyone here could spot the problem
before I go chasing different login details that I don't actually
need. Thanks in advance for any help.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to