Правила форума
ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:
Вопросы по отличиям версий SAP, Add-On, EHP — сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) — сюда
Вопросы по LSMW — сюда
Вопросы по архивации в SAP — сюда
Вопросы по SAP GRC — сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office — сюда
Вопросы по miniSAP (SAP mini basis) — сюда
Вопросы по SAP HANA — сюда
Вопросы по лицензированию продуктов SAP — сюда
Автор | Сообщение | ||
---|---|---|---|
Заголовок сообщения: Нет подключения к saprouter Добавлено: Вс, дек 21 2014, 16:34 |
|||
|
Пытаюсь зайти в SAP систему. Выдается ошибка partner …:3299 not reached (Err no 10035, Err txt WSAEWOULDBLOCK: Resource temporarily unavailable)
|
||
Вернуться к началу |
|
||
шрам |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Вс, дек 21 2014, 16:38 |
|
Вы хвалитесь или жалуетесь?
|
Вернуться к началу |
|
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 13:47 |
||
|
Вопрос — на что нужно посмотреть, чтобы выявить причину такого поведения.
|
||
Вернуться к началу |
|
||
basiscons |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 14:12 |
||
|
на сеть, например. не стоит ли где на пути к 3299 порту сетевой фильтр, более известный как файрвол.
|
||
Вернуться к началу |
|
||
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 16:01 |
||
|
как можно определить наличие фильтра? в случае сотовый телефон в режиме модема — файрвола нет, провайдер сотовой связи может блокировать порт?
|
||
Вернуться к началу |
|
||
RikoNw |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 17:16 |
|
80% проблем людей — проблемы понимания при общении. у вас там какие-то роутеры, вы через них как-то ходите, а потом через телефон ходите. то ли роутеры во вне смотрят, то ли телефон к местной wi-fi, то ли еще чего. Опишите обстановку точнее.
|
Вернуться к началу |
|
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 18:31 |
||
|
Ok. Есть saprouter для подключения к sap системе. У него публичный ip. Этот ip доступен при проверке утилитами ping, tracert. Я пытаюсь подключиться к нему с помощью sapgui. Не подключается. Варианты — закрыты порты на роутере. Либо фильтруется провайдером. Вот и возник вопрос, каким образом можно найти что блокирует доступ? А в первом посте я написал о том, что подключение работает в одном из четырех разных выходах в интернет.
|
||
Вернуться к началу |
|
||
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 20:31 |
||
|
вопрос закрыт. Прошу прощения, но все заработало само собой.
|
||
Вернуться к началу |
|
||
Правила форума
ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:
Вопросы по отличиям версий SAP, Add-On, EHP — сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) — сюда
Вопросы по LSMW — сюда
Вопросы по архивации в SAP — сюда
Вопросы по SAP GRC — сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office — сюда
Вопросы по miniSAP (SAP mini basis) — сюда
Вопросы по SAP HANA — сюда
Вопросы по лицензированию продуктов SAP — сюда
Автор | Сообщение | ||
---|---|---|---|
Заголовок сообщения: Нет подключения к saprouter Добавлено: Вс, дек 21 2014, 16:34 |
|||
Зарегистрирован: |
Пытаюсь зайти в SAP систему. Выдается ошибка partner …:3299 not reached (Err no 10035, Err txt WSAEWOULDBLOCK: Resource temporarily unavailable)
|
||
Вернуться к началу |
|
||
шрам |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Вс, дек 21 2014, 16:38 |
Зарегистрирован: |
Вы хвалитесь или жалуетесь?
|
Вернуться к началу |
|
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 13:47 |
||
Зарегистрирован: |
Вопрос — на что нужно посмотреть, чтобы выявить причину такого поведения.
|
||
Вернуться к началу |
|
||
basiscons |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 14:12 |
||
Зарегистрирован: |
на сеть, например. не стоит ли где на пути к 3299 порту сетевой фильтр, более известный как файрвол.
|
||
Вернуться к началу |
|
||
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 16:01 |
||
Зарегистрирован: |
как можно определить наличие фильтра? в случае сотовый телефон в режиме модема — файрвола нет, провайдер сотовой связи может блокировать порт?
|
||
Вернуться к началу |
|
||
RikoNw |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 17:16 |
Зарегистрирован: |
80% проблем людей — проблемы понимания при общении. у вас там какие-то роутеры, вы через них как-то ходите, а потом через телефон ходите. то ли роутеры во вне смотрят, то ли телефон к местной wi-fi, то ли еще чего. Опишите обстановку точнее.
|
Вернуться к началу |
|
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 18:31 |
||
Зарегистрирован: |
Ok. Есть saprouter для подключения к sap системе. У него публичный ip. Этот ip доступен при проверке утилитами ping, tracert. Я пытаюсь подключиться к нему с помощью sapgui. Не подключается. Варианты — закрыты порты на роутере. Либо фильтруется провайдером. Вот и возник вопрос, каким образом можно найти что блокирует доступ? А в первом посте я написал о том, что подключение работает в одном из четырех разных выходах в интернет.
|
||
Вернуться к началу |
|
||
nrv |
Заголовок сообщения: Re: Нет подключения к saprouter Добавлено: Пн, дек 22 2014, 20:31 |
||
Зарегистрирован: |
вопрос закрыт. Прошу прощения, но все заработало само собой.
|
||
Вернуться к началу |
|
||
Ошибка сокета: WSAEWOULDBLOCK
, Из-за чего? Как Избежать?
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Senior Member
Рейтинг (т): 15 |
Добрый день. Возникла такая проблема: я создаю обычный блокирующий сокет и пытаюсь передать в цикле буфер message:
int shift = 0, sending_len = 0, sent_count = 0, msg_len = 0, err_code = 0; BYTE message[MESSAGE_LEN] = {0}; //составление message и получение msg_len ………….. while(shift < msg_len) { if(shift + SENDING_SUBPART_SIZE < msg_len) sending_len = SENDING_SUBPART_SIZE; else sending_len = msg_len — shift; sent_count = send(sock, (char*)(message + shift), sending_len, 0); if( sent_count != sending_len ){ err_code = WSAGetLastError(); Sleep(100); continue; } shift += sending_len; } Цикл, вообщем, отрабатывает, но довольно часто send возвращает -1, а WSAGetLastError — WSAEWOULDBLOCK. Цитата A non-blocking socket operation could not be completed immediately.
Но как избавиться от ошибки я так и не понял. Если кто-нибудь встречался с подобным, подскажите пожалуйста, как избавиться. Сообщение отредактировано: sham6215 — 13.02.06, 10:35 |
Ace |
|
Чаше всего такое происходит, когда принимающая сторона не успевает считывать данные. Либо переходи на асинхр. работу с сокетами и с удобствами FD_WRITE для таких затыков. Либо придумывай таймаут на всю операцию отсылки, и в случае блокирования сокета пытайся отправлять до истечения этого таймаута. Причем, учитывай ещё один не маловажный момент — в мсдн есть предупреждение, что в случае НЕ успеха операции send (истечение сокетного таймаута), состояние сокета становится НЕ предсказуемым и дальнейшая работа с ним НЕ рекомендуется |
LuckLess |
|
а зачем ты отправляешь буффер кусками? |
sham6215 |
|
Senior Member
Рейтинг (т): 15 |
Ace, ок, спасибо. У меня кстати, недавно возникал вопрос, зачем вообще нужен FD_WRITE . Теперь ясно. LuckLess, а если у меня буфер боьшой — несколько мегабайт, то всё равно передавать в send весь буфер и всё будет ок? Я проверил. Всё замечательно бьётся и WSAEWOULDBLOCK перестал появляться. Сообщение отредактировано: sham6215 — 13.02.06, 14:36 |
LuckLess |
|
Цитата For message-oriented sockets, care must be taken not to exceed the maximum packet size of the underlying provider, which can be obtained by using getsockopt to retrieve the value of socket option SO_MAX_MSG_SIZE. If the data is too long to pass atomically through the underlying protocol, the error WSAEMSGSIZE is returned, and no data is transmitted. зависит от используемого протокола.. Добавлено 13.02.06, 14:58 |
Oleg2004 |
|
sham6215 Цитата а если у меня буфер большой
send() и будет «висеть», пока все не передаст |
LuckLess |
|
Oleg2004 |
Oleg2004 |
|
LuckLess |
LuckLess |
|
Oleg2004 Цитата For message-oriented sockets вечерком попробую… |
sham6215 |
|
Senior Member
Рейтинг (т): 15 |
Цитата LuckLess @ 13.02.06, 14:57 зависит от используемого протокола.. Обычный блокирующий сокет. Протокол TCP (SOCK_STREAM). Цитата Oleg2004 @ 13.02.06, 15:33 В Windows — это WSASend() + надо заказывать winsock 2.0 Значит ли это, что в Windows следует отказываться от send в пользу WSASend? Цитата LuckLess @ 13.02.06, 15:39 а разве для connection-orientied протоколов send() автоматом большой буфер на части не разложит? Цитата Oleg2004 @ 13.02.06, 15:48 Думаю нет — у него руки связаны. Я проверял снифером прогу (которая является прототипом того, что делаю я) и увидел, что буфер разбивается на части. По-этому и затеял всё с разбивкой буфера. А когда стал передавать буфер целиком, то результат получился такой же, как в программе-прототипе (снифер показал, что моё сообщение отправляется несколькими пакетами) и исчезли ошибки. Цитата Oleg2004 @ 13.02.06, 15:48 А тут (message + shift) — я не могу точно сказать, как это будет интерпретироваться message — буфер, shift — количество байт уже переданных. (message + shift) — адрес, с которого следует считывать данные. Тут, ИМХО, всё нормально. |
Oleg2004 |
|
sham6215 Цитата А когда стал передавать буфер целиком, то результат получился такой же, как в программе-прототипе (снифер показал, что моё сообщение отправляется несколькими пакетами) и исчезли ошибки.
Что и требовалось доказать Цитата Значит ли это, что в Windows следует отказываться от send в пользу WSASend?
Cовсем не значит. send() прекрасно работает в Windows. Цитата message — буфер, shift — количество байт уже переданных. (message + shift) — адрес, с которого следует считывать данные. Тут, ИМХО, всё нормально.
Тут как раз ненормально Сообщение отредактировано: Oleg2004 — 14.02.06, 17:58 |
sham6215 |
|
Senior Member
Рейтинг (т): 15 |
Цитата Oleg2004 @ 14.02.06, 17:54 Она сама это прекрасно знает — что вы думаете, ее ламеры делали??? , нет, просто не знал, что: Цитата Oleg2004 @ 14.02.06, 17:54 Если больше чем 1460б — тогда send() из своего буфера — цельного — сам, без вашей помощи, нарезает куски нужной длины и отдает в буфер модуля TCP Спасибо, за исчерпывающее объяснение. |
LuckLess |
|
Цитата sham6215 @ 14.02.06, 14:07 Я проверял снифером прогу (которая является прототипом того, что делаю я) и увидел, что буфер разбивается на части. По-этому и затеял всё с разбивкой буфера. А когда стал передавать буфер целиком, то результат получился такой же, как в программе-прототипе (снифер показал, что моё сообщение отправляется несколькими пакетами) и исчезли ошибки.
хорошо что отписал. Oleg2004 Цитата Oleg2004 @ 14.02.06, 17:54 Если больше чем 1460б — тогда send() из своего буфера — цельного — сам, без вашей помощи, нарезает куски нужной длины и отдает в буфер модуля TCP а под nix-ами другой результат будет? |
Oleg2004 |
|
LuckLess Цитата а под nix-ами другой результат будет?
Не думаю — ведь send() — это юниксовая функция |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- C/C++: Общие вопросы
- Следующая тема
[ Script execution time: 0,0747 ] [ 16 queries used ] [ Generated: 29.01.23, 03:29 GMT ]
SAP on single Windows Server.
For Me through VPN:
- I can ping both the IP address and domain.
- I can connect to SAPGUI.
- When I telnet to IP Port 3200, get a black screen.
- «netstat -a» is slow, but executes, but «netstat -an» is instantaneous.
My developer through VPN:
- Can ping both IP and domain, but can’t connect through SAPGUI from two different machines.
- Have tested with all firewalls (server and client) off — doesn’t work.
Hosts file on server correctly has entry for domain. Services file has entry for sapdp00:3200 .
Reviewed both 124562 Hostname resolution problems (DNS timeouts) and 23538 Problems due to inconsistent host name notation but don’t know that I’ve got a good answer.
I’m not a network guy (or really Basis). Hoping someone can give me some pointers of what to look for.
Thanks in advance.
SAP on single Windows Server.
For Me through VPN:
- I can ping both the IP address and domain.
- I can connect to SAPGUI.
- When I telnet to IP Port 3200, get a black screen.
- «netstat -a» is slow, but executes, but «netstat -an» is instantaneous.
My developer through VPN:
- Can ping both IP and domain, but can’t connect through SAPGUI from two different machines.
- Have tested with all firewalls (server and client) off — doesn’t work.
Hosts file on server correctly has entry for domain. Services file has entry for sapdp00:3200 .
Reviewed both 124562 Hostname resolution problems (DNS timeouts) and 23538 Problems due to inconsistent host name notation but don’t know that I’ve got a good answer.
I’m not a network guy (or really Basis). Hoping someone can give me some pointers of what to look for.
Thanks in advance.
SAPDHI:sapdp00 not reached and WSAEWOULDBLOCK : Resource Temporarily unavailable
I have installed a SAP ERP 6.0 on SUSE with Maxdb. The installation was concluded with successful. I have started SAP instance with the command startsap all and I could see that the Instance is look like working.
From a workstation, I am getting to ping the server but when I try to use SAP GUI, I am getting an error saying :
«SAPDHI:sapdp00» not reached
Component : NI (Network Interface)
Module : nibuf.cpp
Line 4658
Method NiBuf!ConnetÇ connection pending after 10000ms
Return code : -10
Error No : 10035
Error Text : WSAEWOULDBLOCK : Resource Temporarily unavailable
To check if the system is working I have executed the following command ps -ef | grep dw.sap and the result was :
SAPDHI:/ # ps -ef | grep dw.sap
dhiadm 27676 27631 0 21:56 ? 00:00:02 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28023 27676 0 21:56 ? 00:00:02 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28026 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28030 27676 0 21:56 ? 00:00:01 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28036 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28039 27676 0 21:56 ? 00:00:01 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28080 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28081 27676 0 21:56 ? 00:00:01 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28083 27676 0 21:56 ? 00:00:04 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28086 27676 0 21:56 ? 00:00:01 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28087 27676 0 21:56 ? 00:00:05 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28093 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28103 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28109 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28110 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28117 27676 0 21:56 ? 00:00:01 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
dhiadm 28120 27676 0 21:56 ? 00:00:00 dw.sapDHI_DVEBMGS00 pf=/usr/sap/DHI/SYS/profile/DHI_DVEBMGS00_SAPDHI
root 29089 5024 0 22:26 pts/0 00:00:00 grep dw.sap
SAPDHI:/ #
продолжатьTCP
Сетевое программирование, использованиеsend()
Когда функция отправляет данные, она иногда встречаетWSAEWOULDBLOCK
Неправильно, что это за хрень?
Пример кода
iResult = send( ConnectSocket, sendbuf, (int)strlen(sendbuf), 0 );
if (iResult == SOCKET_ERROR)
{
int nLastError = WSAGetLastError();
if (WSAEWOULDBLOCK == nLastError )
{
...
}
...
}
WSAEWOULDBLOCK
WSAEWOULDBLOCK
10035
Resource temporarily unavailable.
This error is returned from operations on nonblocking sockets that cannot be completed immediately, for example recv when no data is queued to be read from the socket.
It is a nonfatal error, and the operation should be retried later.
It is normal for WSAEWOULDBLOCK to be reported as the result from calling connect on a nonblocking SOCK_STREAM socket, since some time must elapse for the connection to be established.
WSAEWOULDBLOCK
Это не фатальная ошибка, и соответствующие операции следует повторить позже.
Анализ причин
WSAEWOULDBLOCK is not really an error but simply tells you that your send buffers are full.
This can happen if you saturate the network or if the other side simply doesn’t acknowledge the received data. Take a look at the select() function, which allows you to wait until buffer space is available or a timeout occurs. There is also a way to bind a win32 event to a stream, which then allows its use with WaitForMultipleObjects in case you want to abort waiting early.
Буфер ядра окна, который должен быть отправлен, заполнен и может быть отправлен только при наличии свободного времени.
Решение:
- Перед отправкой поспите
while(nRet == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK)
{
Sleep(50);
nRet = send(...);
}
Этот тип мышления лучше всего складывать суждение о количестве раз, например, если более 20 раз, передача считается неудачной.
- Увеличивать
socket
изkernel buffer
SOCKET ConnectSocket = ...
...
int nRcvBufferLen = 1024*1024;
int nSndBufferLen = 4*1024*1024;
int nLen = sizeof(int);
setsockopt(ConnectSocket, SOL_SOCKET, SO_RCVBUF, (char*)&nRcvBufferLen, nLen);
setsockopt(ConnectSocket, SOL_SOCKET, SO_SNDBUF, (char*)&nSndBufferLen, nLen);
При отправке аудио и видео, еслиSO_SNDBUF
Если настройка слишком мала, когда сетевая среда плохая, экран будет размытым (данные будут отправлены слишком поздно), и это явление не произойдет, если сетевая среда хорошая.
References:
https://msdn.microsoft.com/en-us/library/ms740149(VS.85).aspx
https://msdn.microsoft.com/en-us/library/ms740668(v=vs.85).aspx#WSAEWOULDBLOCK
http://www.cnblogs.com/chengxin1982/archive/2009/12/24/1631067.html
http://stackoverflow.com/questions/14546362/how-to-resolve-wsaewouldblock-error
https://bobobobo.wordpress.com/2008/11/09/resolving-winsock-error-10035-wsaewouldblock/
Symptom
When try to login to the SAP system, you receive below error.
Solution
• Ping/tracert to the operating system.
• Check the SAPROUTER is working fine.
• Check the firewall is allowing the connection
• Confirm the port is open for connection (Telnet )
• Login to the OS and check the SAP processes are running. (SAPMMC or ps -ef)
resource not available wsaewouldblock
You May Also Like
Hello,
I have spent quit a bit of time figuring out why I am unable to connect to minisap trail system installed on virtual machine. I always got error “ partner 192.168.x.x:sapdp00 not reached” when try to connect from host system. When I checked details of error I see ” wsaewouldblock: resource temporarly unavailable “. I was able to connect to the same system being with in virtual system in both ways like specifying “192.x.x.xx” and “localhost” as application server. I searched a lot to find solution but could not quit understand what exactly the resolution for it ( at least me ). Even though there are some threads where it is mentioned to turn off the firewall, but it wasn’t quit helpful for some of the people on how to turn off the firewall. So I thought I can put together some info in blog with detailed screen shots on how to turn off.
I have installed Oracle Virtual Machine on Windows 10 with Windows 2008 R2 Standard on VM.
So before the fix I was getting this below error.
Now with in the VM OS, Click Start->Administrative Tools -> Windows Firewall with Advanced Security as shown below.
Now there the three different tabs where you need to turn off . Follow all the three screen shots.
Finally click “Apply” and “OK”.
Now go back to SAP Logon pad on Host OS and specify the IP address of VM as shown below.
Thats it. you should able to see logon screen if the issue is really because of firewall issue.
Now, There are otherways to open the requests from host OS to VM OS by specifying inbound and outbound rules on firewall settings.
I leave the inbound and outbound rules way to those who are good take on networking.
Hope this might help…enjoy..
Thanks,
Amara.
Hi,
I am trying to access my Linux X64 based servers through SAP Router. While connecting outside the LAN or using an SAP Router entry in gui, I am getting an error message «wsaewouldblock resource temporarily unavailable». The SAP Router is a Win Vista 32 machine with two LAN cards, one with static and one with local lan IP. I can ping both but telnet to them is not available( I installed telnet in that vista machine earlier). We do not have any firewall or domain here. I disabled Windows firewall too, but no use.
Please help.
Regards