Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / tnsnames.ora / 25 сообщений из 37, страница 1 из 2
12.02.2018, 14:41
    #39600624
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Добрый день
Вот что находится у меня в файле tnsnames.ora:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
MY_TEST=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=host-test)
      (PORT=1521))
    (CONNECT_DATA=
      (SERVER=dedicated)
      (SERVICE_NAME=servtest)))


Вот строка подключения к БД:

Код: java
1.
DriverManager.getConnection("jdbc:oracle:thin:@host-test:1521:servtest", "LOGIN", "PASS");


Как можно сделать, что бы в окошке авторизации, из выподающего списка, было видно название соединения MY_TEST
а после выбора из списка MY_TEST, host-test и servtest подтягивались автоматически до коннекта к БД,

или

на окошке авторизации вручную ввести MY_TEST, но что бы HOST=host-test и SERVICE_NAME=servtest подтягивались автоматически?

Спасибо!
...
Рейтинг: 0 / 0
12.02.2018, 14:44
    #39600626
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Это доку дравера надо листать.
Есть варианты, но не так всё просто:
https://docs.oracle.com/cd/B19306_01/java.102/b14355/urls.htm#BEIDIJCE
...
Рейтинг: 0 / 0
12.02.2018, 14:51
    #39600632
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
...
Рейтинг: 0 / 0
12.02.2018, 14:53
    #39600633
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_Aleksна окошке авторизации вручную ввести MY_TEST, но что бы HOST=host-test и SERVICE_NAME=servtest подтягивались автоматически?делай это руками, без TNS.
Т.к. tns это когда клент для оракла стоит на машине клиента
Код: java
1.
GetConnection("jdbc:oracle:oci8:@MY_TEST.....
...
Рейтинг: 0 / 0
12.02.2018, 15:02
    #39600636
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Сделать свое окошко для ввода имени-пароля.

Два text item, один list box и две кнопки (Ok, Cancel)
...
Рейтинг: 0 / 0
12.02.2018, 15:25
    #39600656
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Blazkowicz,

Спасибо, работает, то что нужно.

Вот что обнаружил,

Код: java
1.
2.
Class.forName("oracle.jdbc.OracleDriver"); 
Class.forName("oracle.jdbc.driver.OracleDriver");


какая из двух строк правильная (и первая и вторая работает) и в чем отличие ?
...
Рейтинг: 0 / 0
12.02.2018, 15:29
    #39600660
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_Aleks,

Никакая не правильная. В актуальных версиях JDBC это уже не нужно.
...
Рейтинг: 0 / 0
12.02.2018, 15:31
    #39600663
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Blazkowicz,

Вот это поворот...
а я писал )

Спасибо!
...
Рейтинг: 0 / 0
12.02.2018, 15:41
    #39600677
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Petro123,

у нас поумолчанию на всех машинах есть оракл клиент
...
Рейтинг: 0 / 0
12.02.2018, 15:51
    #39600685
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_AleksPetro123,

у нас поумолчанию на всех машинах есть оракл клиенток.
Тогда пиши тут итоговый рабочий вариант. Заработало?
...
Рейтинг: 0 / 0
12.02.2018, 16:12
    #39600699
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Petro123,

Это код для теста подключений, просьба к корректности не придираться )

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
	public static void main(String[] args) throws SQLException {

		Connection myConn = null;
		Statement myStmt = null;
		ResultSet myRes = null;

		String connectName;
		String userName;
		String password;

		connectName = "MY_TEST";
		userName = "USER1";
		password = "PASSUSER1";

		try {
			System.setProperty("oracle.net.tns_admin", "d:\\Oracle\\product\\12.1.0\\client_1\\network\\admin\\");
			String url = "jdbc:oracle:thin:@" + connectName;
			myConn = DriverManager.getConnection(url, userName, password);
			myStmt = myConn.createStatement();
			myRes = myStmt.executeQuery("select name from user");
			
			while (myRes.next()) {
				System.out.print(myRes.getString("name"));
			}
		} catch (SQLException e) {
			System.out.println("ERROR");
		} finally {
			try {
				if (myStmt != null) {
					myStmt.close();
				}
				if (myRes != null) {
					myRes.close();
				}
				if (myConn != null) {
					myConn.close();
				}
			} catch (SQLException e) {
				System.out.println("ERROR 2");
			}
		}

	}
}
...
Рейтинг: 0 / 0
12.02.2018, 16:58
    #39600715
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_Aleks,
Да. По другому. Раньше было oci8 и бралось из реестра tns.
...
Рейтинг: 0 / 0
12.02.2018, 18:39
    #39600766
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_AleksВот что находится у меня в файле tnsnames.ora:
...
Вот строка подключения к БД:
Код: plaintext
 jdbc:oracle: thin :@host-test:1521:servtest
"Тонкий" клиент - ява-пюре и ему до лампочки и tnsnames в частности и наличие "нативного" клиента - вообще.
...
Рейтинг: 0 / 0
12.02.2018, 18:42
    #39600769
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Basil A. Sidorov,
Да. Но они хотят почему то)))
...
Рейтинг: 0 / 0
13.02.2018, 09:23
    #39600945
Aleks_Aleks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Что-то я все...

Вы о чем друзья?

Был задан вопрос, был получен ответ...

Какие оси, какое пюре, какой на*рен реестр...

ОСИ !?

Код: java
1.
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Windows\System32\ocijdbc12.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform


Спасибо не стоит... - потому что мы хотим, почему то!

ТЕМА ЗАКРЫТА.
...
Рейтинг: 0 / 0
13.02.2018, 09:33
    #39600950
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_Aleks,
Тема принадлежит публичному обществу а не тебе.
Говорилось про то что клиент оракла на каждую машинку ставить не обязательно. Можно Просто jar с приложением.
Выше написано, что у вас по умолчанию на каждой клиент.
Никто ни против).
...
Рейтинг: 0 / 0
17.11.2018, 22:34
    #39734640
wellvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Здравствуйте!
Интересует момент, при подключении к БД Oracle использую System propety(System.setProperty), все норм...
но в данном случае все будет работать, если известен заранее service name и он прописывается в коде, а есть возможность, извлекать все существующие service name из файла Tnsname.ora и в зависимости от выбора пользователя- вставлять в код?
Код: java
1.
tring dbURL = "jdbc:oracle:thin:@"+V_SERVICE_NAME;
...
Рейтинг: 0 / 0
17.11.2018, 23:32
    #39734652
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
wellvk,
name это типа имя бд удаленной. Т. к. на одном ip их может быть много.
Заранее узнать нельзя т.к. оно на сервере удаленном в tnsnames.
А у тебя просто кто то прописал руками.
Можешь программно прочесть и взять себе.
...
Рейтинг: 0 / 0
18.11.2018, 18:53
    #39734832
wellvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Petro123,
Если, допустим, на сервере где запускаем jar есть данный файл(tnsnames.ora) - я могу просто тогда распаристь и вытащить из него все serveci name и подставить нужные на место переменной V_SERVICE_NAME? Думал что есть более "продвинутый способ".
...
Рейтинг: 0 / 0
18.11.2018, 20:00
    #39734841
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
wellvkPetro123,
Если, допустим, на сервере где запускаем jar есть данный файл(tnsnames.ora) - я могу просто тогда распаристь и вытащить из него все serveci name и подставить нужные на место переменной V_SERVICE_NAME? Думал что есть более "продвинутый способ".
какой продвинутый, если:
- в том файле имена ставятся руками?
- этого файла и клиента оракла на машине может не быть
- есть более продвинутый способ когда в jar уже есть драйвер оракла и tnsnames на клиентской машине ВООБЩЕ НЕ НУЖЕН.
Получается что ты хочешь брать имена из файла во вторник, когда ты сам их туда записал в понедельник.
...
Рейтинг: 0 / 0
18.11.2018, 20:00
    #39734842
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
wellvkДумал что есть более "продвинутый способ".
не ставить клиент оракла на клиента, а брать драйвер из jar.
...
Рейтинг: 0 / 0
18.11.2018, 20:04
    #39734845
wellvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Petro123, понимаю, что звучит странно, но максимально упрощаю вопрос: можно ли не парся tnsnames.ora выбрать все service name ?
Задача: зная директорию tnsnames.ora, "вытащить" из него все сервисы.
...
Рейтинг: 0 / 0
18.11.2018, 23:00
    #39734871
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
wellvk,
Бери и читай этот файл.
В него пишут РУКАМИ.
Три раза написал.
...
Рейтинг: 0 / 0
19.11.2018, 12:57
    #39735106
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Aleks_Aleks,

1. В любой файл типа properties записать что-то типа
Код: java
1.
MY_TEST=jdbc:oracle:thin:@host-test:1521:servtest


а tnsnames.ora вместе а оракловым клиентом выбросить нафиг.

2. Другой подход - использовать OCI драйвер с оракловым клиентом. Читайте тут про TNS_ADMIN. Работает примерно так, допустим у вас есть в tnsnames.ora
Код: java
1.
2.
 conn_str = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))
(CONNECT_DATA=(SERVICE_NAME=rdbms3.server6.us.alchemy.com)))


Ваша строка подключения будет выглядеть примерно так
Код: java
1.
url = "jdbc:oracle:oci:@conn_str"
...
Рейтинг: 0 / 0
19.11.2018, 13:22
    #39735116
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tnsnames.ora
Garrickа tnsnames.ora вместе а оракловым клиентом выбросить нафиг.согласен. Но он уперся нафиг рогом и все тут))).
Ждал когда ему прямо коннект напишут с дровами в программе а не на машине заказчика.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / tnsnames.ora / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]