Resolução de problemas de conectividade ODBC inconsistente

0

Estou tentando integrar o UPS WorldShip com um banco de dados do SQL Server 2008 R2, mas a conexão é muito inconsistente. A UPS alega que este é um problema de DSN / Windows e eu não consegui convencê-los do contrário.

A integração é bem simples: meu entregador clica em um botão que abre um formulário onde ele digita um pedido #. Depois de pressionar Enter, as informações de remessa serão extraídas do banco de dados para esse pedido #.

O problema é que o WorldShip muitas vezes acha que o DSN não existe. No entanto, eu posso abrir a ferramenta de personalização do WorldShip e navegar por todas as tabelas e campos no banco de dados em que meu DSN está conectado, o que significa que, no mínimo, meu DSN existe, de fato.

A razão pela qual isso tem sido tão difícil de solucionar é porque não há consistência para o problema e não consigo repetir com confiança nenhum comportamento. Isso quer dizer que a reinicialização do PC não faz com que a conexão seja interrompida e a abertura da ferramenta de integração, além de exibir as tabelas e os campos, não faz com que o botão de integração funcione.

Existe alguma maneira de eu monitorar essa conexão do servidor SQL ou obter pistas sobre o motivo da falha?

Conforme solicitado pelo TallTed, aqui está uma amostra do arquivo de rastreamento que eu criei. Depois de meras 5 horas, o arquivo de rastreamento tinha mais de 130 MB, então não há como eu fornecer isso em sua totalidade.

WorldShipTD     d94-690 EXIT  SQLSetStmtAttrW  with return code -1 (SQL_ERROR)
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                1227 <unknown>
        SQLPOINTER          [Unknown attribute 1227]
        SQLINTEGER                  -5 

        DIAG [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed (0) 

WorldShipTD     d94-690 ENTER SQLAllocHandle 
        SQLSMALLINT                  3 <SQL_HANDLE_STMT>
        SQLHANDLE           0x0C662FC0
        SQLHANDLE *         0x03EBCE38

WorldShipTD     d94-690 EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
        SQLSMALLINT                  3 <SQL_HANDLE_STMT>
        SQLHANDLE           0x0C662FC0
        SQLHANDLE *         0x03EBCE38 ( 0x0C6632A0)

WorldShipTD     d94-690 ENTER SQLSetStmtAttrW 
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                   0 <SQL_ATTR_QUERY_TIMEOUT>
        SQLPOINTER                30
        SQLINTEGER                  -5 

WorldShipTD     d94-690 EXIT  SQLSetStmtAttrW  with return code -1 (SQL_ERROR)
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                   0 <SQL_ATTR_QUERY_TIMEOUT>
        SQLPOINTER                30
        SQLINTEGER                  -5 

        DIAG [HYC00] [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented  (106) 

WorldShipTD     d94-690 ENTER SQLGetDiagFieldW 
        SQLSMALLINT                  3 
        SQLHANDLE           0x0C6632A0
        SQLSMALLINT                  1 
        SQLSMALLINT                  4 
        SQLPOINTER         0x00520708
        SQLSMALLINT                 12 
        SQLSMALLINT *       0x0028E2A8

WorldShipTD     d94-690 EXIT  SQLGetDiagFieldW  with return code 0 (SQL_SUCCESS)
        SQLSMALLINT                  3 
        SQLHANDLE           0x0C6632A0
        SQLSMALLINT                  1 
        SQLSMALLINT                  4 
        SQLPOINTER         0x00520708
        SQLSMALLINT                 12 
        SQLSMALLINT *       0x0028E2A8 (10)

WorldShipTD     d94-690 ENTER SQLGetInfoW 
        HDBC                0x0C662FC0
        UWORD                       77 <SQL_DRIVER_ODBC_VER>
        PTR                 0x03EBCEDC 
        SWORD                      100 
        SWORD *             0x0028E290

WorldShipTD     d94-690 EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
        HDBC                0x0C662FC0
        UWORD                       77 <SQL_DRIVER_ODBC_VER>
        PTR                 0x03EBCEDC [      10] "03.51"
        SWORD                      100 
        SWORD *             0x0028E290 (10)

WorldShipTD     d94-690 ENTER SQLSetStmtAttrW 
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                1228 <unknown>
        SQLPOINTER          [Unknown attribute 1228]
        SQLINTEGER                  -5 

WorldShipTD     d94-690 EXIT  SQLSetStmtAttrW  with return code -1 (SQL_ERROR)
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                1228 <unknown>
        SQLPOINTER          [Unknown attribute 1228]
        SQLINTEGER                  -5 

        DIAG [HY092] [Microsoft][ODBC Microsoft Access Driver]Invalid attribute/option identifier  (86) 

WorldShipTD     d94-690 ENTER SQLGetDiagFieldW 
        SQLSMALLINT                  3 
        SQLHANDLE           0x0C6632A0
        SQLSMALLINT                  1 
        SQLSMALLINT                  4 
        SQLPOINTER         0x00520708
        SQLSMALLINT                 12 
        SQLSMALLINT *       0x0028E2A8

WorldShipTD     d94-690 EXIT  SQLGetDiagFieldW  with return code 0 (SQL_SUCCESS)
        SQLSMALLINT                  3 
        SQLHANDLE           0x0C6632A0
        SQLSMALLINT                  1 
        SQLSMALLINT                  4 
        SQLPOINTER         0x00520708
        SQLSMALLINT                 12 
        SQLSMALLINT *       0x0028E2A8 (10)

WorldShipTD     d94-690 ENTER SQLSetStmtAttrW 
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                1227 <unknown>
        SQLPOINTER          [Unknown attribute 1227]
        SQLINTEGER                  -5 

WorldShipTD     d94-690 EXIT  SQLSetStmtAttrW  with return code -1 (SQL_ERROR)
        SQLHSTMT            0x0C6632A0
        SQLINTEGER                1227 <unknown>
        SQLPOINTER          [Unknown attribute 1227]
        SQLINTEGER                  -5 

        DIAG [HY092] [Microsoft][ODBC Microsoft Access Driver]Invalid attribute/option identifier  (86) 

WorldShipTD     d94-690 ENTER SQLGetDiagFieldW 
        SQLSMALLINT                  3 
        SQLHANDLE           0x0C6632A0
        SQLSMALLINT                  1 
        SQLSMALLINT                  4 
        SQLPOINTER         0x00520708
        SQLSMALLINT                 12 
        SQLSMALLINT *       0x0028E2A8

WorldShipTD     d94-690 EXIT  SQLGetDiagFieldW  with return code 0 (SQL_SUCCESS)
        SQLSMALLINT                  3 
        SQLHANDLE           0x0C6632A0
        SQLSMALLINT                  1 
        SQLSMALLINT                  4 
        SQLPOINTER         0x00520708
        SQLSMALLINT                 12 
        SQLSMALLINT *       0x0028E2A8 (10)
    
por Chris76786777 08.11.2011 / 23:37

1 resposta

0

Com as informações limitadas em mãos, acho que você definiu um DSN de usuário, onde deveria ser um DSN do sistema.

Se não for isso, precisaríamos minimamente da (s) mensagem (ns) de erro exata (s) vista quando as coisas falham. Um rastreamento ODBC do lado do cliente provavelmente revelaria mais do que um log do SQL Server.

Boa sorte!

    
por 02.06.2012 / 02:47