2014-01-23 3 views
0

В настоящее время я создаю задание ETL в talend, которое подключается к базе данных PostgreSQL, и я столкнулся с ошибкой соединения.Talend failing connection to PostgreSQL

Я установил соединение db в моем репозитории talend со всеми подробностями подключения. Мне нужно подключиться к моей базе данных postgreSQL и сохранить как «mydbconnection», указанную конкретную схему базы данных.

Я использовал mydbconnection в tPostgreSQLOutput и tPostgreSQLInput и оба отлично работали. Однако, когда я использую то же соединение из репозитория в tEltPostgreSQLOutput_1, он выдает ошибку (см. Ниже).

  1. Я попытался следующие действия, чтобы разрешить его:
    1. Проверить детали соединения в хранилище и выбежала «Проверить подключение» и все было нормально
    2. Убедился имя пользователя имеет привилегии над этой задачей - все нормально
    3. Проверено максимальное количество сеансов, с которыми пользователь может подключиться, может быть - ok
    4. Проверено максимальное количество сеансов, которые сервер базы данных готов принять - все нормально
    5. Проверено журналы базы данных - ничего не записано (даже «неудачная попытка подключения»)
    6. Проверено, что версия java на моей машине - v7 поддерживается новейшим талантом.
    7. Искал предыдущие вопросы здесь!

... и понятия не имеют, куда идти отсюда. Кто-нибудь знает какие-либо другие хорошие исследования, чтобы разрешить это?

Сообщение об ошибке:

Exception in component tELTPostgresqlOutput_1 
org.postgresql.util.PSQLException: The connection attempt failed. 
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:137) 
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) 
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:124) 
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30) 
    at org.postgresql.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24) 
    at org.postgresql.Driver.makeConnection(Driver.java:386) 
    at org.postgresql.Driver.connect(Driver.java:260) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at zurich_segmentation_prod.is_300_customer_new_0_1.is_300_customer_new.tELTPostgresqlMap_1Process(is_300_customer_new.java:338) 
    at zurich_segmentation_prod.is_300_customer_new_0_1.is_300_customer_new.runJobInTOS(is_300_customer_new.java:602) 
    at zurich_segmentation_prod.is_300_customer_new_0_1.is_300_customer_new.main(is_300_customer_new.java:470) 
+0

Есть ли еще какое-то исключение, возможно, раздел 'Caused by:'? Какую версию PgJDBC вы используете? Есть ли сообщение в журнале ошибок сервера PostgreSQL? –

+0

Привет, Крейг, кажется, что талант не заполняет детали подключения в базовый сценарий java. Я открыл java и нашел следующее: dbUser_tELTPostgresqlOutput_1 = ""; и dbPwd_tELTPostgresqlOutput_1 = ""; Я жестко закодировал их в java сейчас, и это работает, но это небезопасное решение. Интересно, имеет ли кто-нибудь еще эту проблему? – listonator

+0

Из вашего описания неясно, как вы используете 'tEltPostgreSQLOutput' внутри своей работы. Не могли бы вы загрузить скриншот? – cyroxx

ответ

0

для тех, кто работает с этой проблемой в будущем .. я нашел путь вокруг него. Я добавил tPostgreSQLConnection в мое рабочее пространство, а затем пометил параметр в моем tELTPostgreSQLMap, чтобы «использовать существующее соединение», поэтому он остается включенным, когда рабочий поток достигает компонента tEltPostgreSQLOutput. Это некрасиво, но это работает. Более очевидный способ (то, как я это сделал) не работает. В этот точный сценарий добавлена ​​ошибка JIRA Таленда.