Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проблема с Oracle и asp.net, database link / 4 сообщений из 4, страница 1 из 1
03.05.2005, 12:57
    #33045939
HoTicE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Oracle и asp.net, database link
Была процедурка, нормально работала по трехзвенке:
asp.net <->dbase.dll<->oracle
запрос к таблице из другого табличного пространства
select * from kadr.l_kart, работало все OK

теперь это табличное пространство на другом сервере.
настроен database link lnk_lhpro для соединения с этой базой, линк проверен - ок

select * from kadr.l_kart@lnk_lhpro
процедура валидная, запрос пробовал в sql*plus запускать - ок

но как только вызываю процедурку в asp.net - ругается
Код: plaintext
ORA- 02041 : client database did not begin a transaction ORA- 06512 : at "WH.PKG_WH", line  469  ORA- 06512 : at line  1 

и показывает на строчку: owner.DataSource = WRS.getOwners();
где: owner - DropDownList
WRS - DBTIER.wh.workstations WRS = new DBTIER.wh.workstations();
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
namespace DBTIER {
	public class workstations {
		public OracleDataReader getOwners() {
			OracleConnection conn = new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
			OracleCommand cmd = conn.CreateCommand();
			cmd.CommandType = CommandType.StoredProcedure;
			cmd.CommandText = "WH.PKG_WH.get_owners";
			cmd.Parameters.Add(new OracleParameter("t_cr", OracleType.Cursor)).Direction = ParameterDirection.Output;
			conn.Open();
			OracleDataReader Rd = cmd.ExecuteReader(CommandBehavior.CloseConnection);
			return Rd;
	}
}
Пока небыло работы через линк все работало, в чем трабл подскажите pls!
...
Рейтинг: 0 / 0
03.05.2005, 14:24
    #33046215
HoTicE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Oracle и asp.net, database link
Нашел в инете вот такую инфу - ответ авторитетного мэна из oracle support
на похожий вопрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
You are running into Oracle Client  8 . 1  client bug  914652 . This problem was
exposed when we added Distributed transaction support to the Oracle Client
v1. 1 . There is a QFE available from our side that allows you to completely
disable distributed transactions by using a connection string keyword
(Enlist=false is not enough), please contact pss directly for the fix.

A better option would be to switch to a newer version of the Oracle Client,
this issue is fixed in v9.x
Hope this helps
Типа это баг и он пофиксен в 9.х а если нет 9-ки :((

кто сталкивался с этим HELP!!!
...
Рейтинг: 0 / 0
03.05.2005, 14:34
    #33046240
HoTicE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Oracle и asp.net, database link
ему посоветовали использовать такую строку подключения
Код: plaintext
sConnection = "Provider=OraOLEDB.Oracle;Password=" & sDatabasePwd & ";User ID=" & sDatabaseSchema & ";Data Source=" & sDatabaseInstance & ";DistribTX=0;"
DistribTX=0 - запрещает распределенные транзакции.

у меня строка "Data Source=www;User ID=user;Password=pass;"

если делаю "Data Source=www;User ID=user;Password=pass;DistribTX=0"

то ругается
Код: plaintext
1.
System.ArgumentException: Keyword not supported: 'distribtx'.

млин!, чета запутался я уже совсем.
...
Рейтинг: 0 / 0
03.05.2005, 15:34
    #33046380
HoTicE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Oracle и asp.net, database link
Решение найдено.
Если кому интересно, вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public OracleDataReader getOwners() {
	OracleConnection conn = new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
	OracleCommand cmd = conn.CreateCommand();
	conn.Open();
				
	cmd.Transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted);
	cmd.CommandText = "SET TRANSACTION READ ONLY";
	OracleDataReader Rd = cmd.ExecuteReader();
	Rd.Close() ;
								
	cmd.CommandType = CommandType.StoredProcedure;
	cmd.CommandText = "WH.PKG_WH.get_owners";
	cmd.Parameters.Add(new OracleParameter("t_cr", OracleType.Cursor)).Direction = ParameterDirection.Output;
				
	Rd = cmd.ExecuteReader(CommandBehavior.CloseConnection);
	cmd.Transaction.Commit();
	return Rd;
}
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Проблема с Oracle и asp.net, database link / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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