powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как организовать обмен с супер сервером?
6 сообщений из 6, страница 1 из 1
Как организовать обмен с супер сервером?
    #39031221
misha_shar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При установке CACHE в настройках указываешь порт суперсервера. Что он из себя представляет и как организовать работу с ним?
...
Рейтинг: 0 / 0
Как организовать обмен с супер сервером?
    #39031269
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порт суперсервера, это тот через который идут все прямые подключения к Caché: ActiveX, Studio, CSP Gateway, ODBC/JDBC ну и т.д. в общем все внешние подключения.
...
Рейтинг: 0 / 0
Как организовать обмен с супер сервером?
    #39031329
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
misha_sharкак организовать работу с ним
В дополнение к вышесказанному, вот простой пример для подключения через VisM на шарпе:

Код: c#
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.
using VISMLib;
...
...
string cmd;
VisM vism = new VisM();
vism.SetServer("CN_IPTCP:localhost[1972]:_system:SYS");
vism.ErrorTrap = true;
vism.OnError += vism_OnError;
vism.P0 = "%SYS.Namespace";
vism.P1 = "List";
vism.P2 = "Nsp";
vism.P3 = "";

cmd = "set rs=##class(%ResultSet).%New()";
vism.Execute(cmd);
cmd = "set rs.ClassName=P0";
vism.Execute(cmd);
cmd = "set rs.QueryName=P1";
vism.Execute(cmd);
cmd = "set sc=rs.Execute()";
vism.Execute(cmd);
cmd = "while rs.%Next() { set ^CacheTempCGM($J,rs.Data(P2))=P3 }";
vism.Execute(cmd);
cmd = "k rs,sc";
vism.Execute(cmd);
vism.SetServer("");
...
...
...
void vism_OnError()
{
      vism.Execute("d BACK^%ETN");
}


Ну а если интересует именно спецификация протокола, для подключения на порт суперсервера, то она, насколько я знаю, закрытая. Тут wireshark в помощь и вперед исследовать трафик :)
...
Рейтинг: 0 / 0
Как организовать обмен с супер сервером?
    #39031468
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.,
MSM-Activate по лучше будет с моей точки зрения .
Кода по меньше и читабильность кода по проще.
...
Рейтинг: 0 / 0
Как организовать обмен с супер сервером?
    #39031478
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если Cache' на Linux-е можно запустить xinetd.
Будет в смысле тоже какой-то супер сервер...
В gt.m без проблем, даже сами разработчики советуют.
MSM-Activate(и не только) запустили на gt.m через него - все отлично работает.
Через xinetd я запустил Activate даже на GlobalsDB но, там урезанный функционал...
...
Рейтинг: 0 / 0
Как организовать обмен с супер сервером?
    #39074831
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.misha_sharкак организовать работу с ним
В дополнение к вышесказанному, вот простой пример для подключения через VisM на шарпе:

Код: c#
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.
using VISMLib;
...
...
string cmd;
VisM vism = new VisM();
vism.SetServer("CN_IPTCP:localhost[1972]:_system:SYS");
vism.ErrorTrap = true;
vism.OnError += vism_OnError;
vism.P0 = "%SYS.Namespace";
vism.P1 = "List";
vism.P2 = "Nsp";
vism.P3 = "";

cmd = "set rs=##class(%ResultSet).%New()";
vism.Execute(cmd);
cmd = "set rs.ClassName=P0";
vism.Execute(cmd);
cmd = "set rs.QueryName=P1";
vism.Execute(cmd);
cmd = "set sc=rs.Execute()";
vism.Execute(cmd);
cmd = "while rs.%Next() { set ^CacheTempCGM($J,rs.Data(P2))=P3 }";
vism.Execute(cmd);
cmd = "k rs,sc";
vism.Execute(cmd);
vism.SetServer("");
...
...
...
void vism_OnError()
{
      vism.Execute("d BACK^%ETN");
}


Ну а если интересует именно спецификация протокола, для подключения на порт суперсервера, то она, насколько я знаю, закрытая. Тут wireshark в помощь и вперед исследовать трафик :)

Ни в коем случае так не делайте. Вам приведен самый медленный способ взаимодействия с СУБД.
На сегодня для себя определил 2 способа:
1. Через CSP шлюз - требует обязательно id сессии
2. Через php-mgwsi - не требует id сессии.
Данные получаются в виде XML или JSON.
Например для DataSet Xe7
Код: xml
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.
 <FDBS Version="11">
 <Manager>
 <TableList>
  <Table> 
 <ColumnList>
 <Column Name="TITLE" DataType="AnsiString" Size="100"/>
 <Column Name="NAME" DataType="AnsiString" Size="150"/>
 <Column Name="PRICE" DataType="AnsiString" Size="10"/>
 <Column Name="TIME" DataType="AnsiString" Size="10"/>
 <Column Name="T" DataType="AnsiString" Size="5"/>
 <Column Name="CODE" DataType="AnsiString" Size="25"/>
 <Column Name="TYPE" DataType="Int32"/>
 </ColumnList>
 <ConstraintList Enforce="False"/>
  <ViewList/>
  <RowList>
   <Row RowID="1" RowState="Unchanged"><Original NAME="xxxxx" CODE="xxx/0.1~AB" PRICE="33700" TIME="56" 
   TITLE="xxxx" T="" TYPE="0"/>
    </Row>
   <Row RowID="2" RowState="Unchanged"><Original NAME="xxxxxx" CODE="111~Bw" PRICE="25000" TIME="70" TITLE="xxxxxxx" T="" TYPE="1"/>
  </Row>
  </RowList>
   </Table>
   </TableList>
    <RelationList/>
   </Manager>
 </FDBS>
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как организовать обмен с супер сервером?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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