TCP ZeroWindow

Hello We are running SAP on windows 2008 R2 Enterprise. HW: IBM HS22.
When a user access SAP information on portal ( Web Server) the portal queries the ECC application Server and provide the information. The issue is we recieve TCP ZeroWindow on the Wireshark log captured in between the WEB and APP server when particular link
is clicked for the first time. After 5 seconds if we click the link it works fine.
We are usign 1500MTU LAN
Anand

Hi Anand,
If the receiver haven't enough receive buffer for a specified amount of time, a TCP zero window size is advertised by the receiver and no new data can be sent to the receiver. When the application on the receiver retrieves the data in the receive buffer,
the receiver TCP then advertises a non-zero window size by sending a TCP packet containing the current Acknowledgment number and non-zero Window size. But if the TCP segments lost before arriving the sender, then the sender will wait the non-zero window all
the time. This situation is known as deadlock. To resolve the deadlock situation, TCP provide a persistence timer for every TCP connection. When one of them receive the zero window, start the persistence timer, then send a zero window probe message segment
periodically. The value of persistence timer is calculated dynamically, depending on the round trip time of the connection, between 5 seconds and 60 seconds value.
Best Regards,
Tina

Similar Messages

  • Error 'Program not registered' while testing RFC - SRM to MDM / TCP/IP conn

    Hello All,
    While testing RFC connection in SRM, we are getting this error. This connection between SRM to MDM. Any inputs will be highly appreciated.
    Error Details LOCATION: SAP-Gateway on host <hostname> / sapgw<instance no>
    our server OS : windows 2008 server
    We are getting error while doing connection test in SRM.
    This is sm59 connection (TCP/IP ) connection.
    Connection Type: T / RFC destination Name: MDM_API_CATALOG
    Registered server program: hostname.MDS
    I checked smgw transaction ..Logged on clients...Program id is not showing. Any hint will be helpful.
    I Checked this MDM setup also.
    MDS setup
    In mdm server go to folder F:\usr\sap\DM1\MDS00\config
    Open MDM.ini file in notepad
    Add the below 2 entries.
    SAP RFC Gateways= GWHOST=XXXX.hostnamexxx.xxx GWSERV=sapgw00
    Trusted SAP Systems= XXD
    This will enable gateway connection between SRM and MDM and will enable trusted connection.
    For trusted connections to work, we created a service user called SRM_MDM_API with SAP_ALL in SRM  and also created the same user in MDM with Default role.
    Error message:
    Logon  Connection Error
    Error Details    Error when opening an RFC connection
    Error Details    ERROR: program XXXXXXXXPRD.MDS not registered
    Error Details    LOCATION: SAP-Gateway on host XXXXXXXXprd.xx.xxxxxxhostname.xxx / sapgw00
    Error Details    DETAIL: TP XXXXXXXXPRD.MDS not registered
    Error Details    COMPONENT: SAP-Gateway
    Error Details    COUNTER: 77326
    Error Details    MODULE: gwr3cpic.c
    Error Details    LINE: 1778
    Error Details    RETURN CODE: 679
    Error Details    SUBRC: 0
    Error Details    RELEASE: 700
    Error Details    TIME:
    Error Details    VERSION: 2
    Procedure Tried
    1)  This procedure is for Linux OS - Similarly we tried in Windows OS ( If any procedure is wrong also, Please correct us)
    To register the program login into the OS level as sudo su u2013 <sid>adm and execute the following command.
    rfcexec u2013g<program id> -a<gateway host name> -x<gateway service>
    rfcexec is the server program name, the <program id> can be obtained from SM59, it is case sensitive and should match with the entry in SM59. The <gateway host name> and <gateway service> can be obtained from the transaction SMGW. When this command is executed it goes to a hanging loop.
    The connection will fail once this command is terminated or the user executing this command logs off
    2)
    To avoid this, instead of using the above mentioned command an entry should be made in the file saprfc.ini
    To do this, execute the following command
    sudo su u2013 <sid>adm
    rfcexec u2013D<destination name>
    <destination name> is the RFC destination name in SM59
    In order to do above step 2,  we could not find saprfc.ini in windows 2008 server. Please let us know path where it will be usually?
    3) Already checked the notes sapnote_0000684841
    I know that it is generic error..This is happening to specific one of system only.
    Thanks
    Edited by: saptest2011 on May 20, 2011 5:36 PM

    Hello SM,
    Thanks for your quick reply.
    Thanks for sharing link for document ie Configure the MDM Administration_cockpit. It is helpful. I read that document.
    But still issue remain there.
    The same RFC connection works between SRM sandbox to MDM sandbox.
    Only issue with SRM Prod to MDM Prod (newly built system)
    difference between MDM Prod and MDM sandbox.
    MDM Prod runs: Windows server 2008 OS
    MDM Sandbox runs: Windows server 2003 OS
    Landscape: PI7.1, MDM 7.1 and SRM 5.5, SRM-MDM Catalog 3.0
    Even i did os01 tcode ping test using host name (specific IP address) from SRM prod to MDM prod, it is fine.
    Thanks a lot for your help.
    I checked these notes also
    Note 353597 - Registering a server program
    Note 44844 - No connection to registered RFC program
    Note: in smgw tcode in SRM system, the required program id is not showing in logged on clients
    Thanks
    Edited by: saptest2011 on May 23, 2011 5:00 PM
    Edited by: saptest2011 on May 23, 2011 5:39 PM

  • XModem via TCP for Java

    I am sure that many of you experienced developers have read requests in the past concerning implmentation of Ward Christenen's XModem protocol over a TCP socket. If not, well... you are about to...
    This is a major hack... but it is starting to come together... thanks to Fred Potter for his source code to start this project...
    Objective:
    Basically, I want to create a console application which accepts an incoming connection and starts the receive mode for a XModem file transfer. I am using CGTerm (for Commodore retrocomputing) but can test with HyperTerminal as well...
    The user who connects to the server selects SEND and the FILE to send for a XModem file transfer... and the transfer begins...
    The incoming blocks of 128 bytes are written to a file
    After the transfer is over the server disconnects the client terminal.
    Here is what I have so far:
    import java.net.*;
    import java.lang.*;
    import java.io.*;
    // X-Modem Server implementation via TCP/IP socket
    public class XServer {
    public static FileWriter fw;
    public static void main(String[] args) throws IOException {
    // define the file
    try {   
    fw = new FileWriter("filename.txt");
    } catch (Exception e) {
    System.out.println(e);
    System.exit(0);
    int port = Integer.parseInt(args[0]);
    ServerSocket server = new ServerSocket(port);
    System.out.println("X-Server v1.0 - waiting for connection");
    Socket client = server.accept();
    // Handle a connection and exit.
    try {
    InputStream inputStream = client.getInputStream();
    OutputStream outputStream = client.getOutputStream();
    new PrintStream(outputStream).println("Go to send file mode!"); // sent to client
    System.out.println("Ready to receive file via X-Modem...");
    * BEGIN TRANSFER HERE!
    // set the debug flag
    XModem.debug = true;
    * Here we are instantiating a new InputStream that represents the remote
    * file that we are receiving. In this single line we are attempting to
    * start the flow.
    * Behind The Scenes: We're sending a NAK across the serial line repeatedly
    * until we finaly start seeing the data flow. If we don't see the data
    * flow, then we throw an exception.
    System.out.println("Sending NAK to start receive mode...");
    InputStream incomingFile;
    try {
    incomingFile = new XModemRXStream(inputStream, outputStream);
    } catch (IOException e) {
    System.out.println("ERROR! Unable to start file transfer!");
    e.printStackTrace();
    return;
    System.out.println("Starting file transfer...");
    * Here we are reading from the incoming file, byte by byte, and printing out.
    * Behind The Scenes: Internally, the read() method is handling the task of
    * asking for the next data block from the remote computer, processing it (i.e.
    * parsing, running checksums), and then putting it in an internal buffer. Not
    * all calls to read() will request a new data block as each block contains at
    * least 128 bytes of data. Sometimes you will only hit the buffer.
    try {
    for (;;) {
    int c = incomingFile.read();
    if (c==-1)
    break; // End of File
    // print character / byte
    System.out.print(c+",");
    // write to file
    try {       
    //System.out.print(".");
    fw.write(c);
    } catch (Exception e) {
    System.out.println(e);
    System.exit(0);
    } catch (IOException e) {
    System.out.println("error while reading the incoming file.");
    e.printStackTrace();
    return;
    // done
    System.out.println("File sent.");
    new PrintStream(outputStream).println("");
    new PrintStream(outputStream).println("transfer successful!");
    } finally {
    //client.close();
    // save the file
    try {   
    fw.close();
    System.out.println("file saved.");
    } catch (Exception e) {
    System.out.println(e);
    System.exit(0);
    * XModem keeps track of settings that the Receive and Transmit Stream classes will
    * reference.
    * <p>Copyright: Copyright (c) 2004</p>
    * @author Fred Potter
    * @version 0.1
    class XModem {
    public static boolean debug = false;
    * XModemRXStream is an easy to use class for receiving files via the XModem protocol.
    * @author Fred Potter
    * @version 0.1
    class XModemRXStream
    extends InputStream {
    // CONSTANTS
    private static final int SOH = 0x01;
    private static final int EOT = 0x04;
    private static final int ACK = 0x06;
    private static final int NAK = 0x15;
    private static final int CAN = 0x18;
    private static final int CR = 0x0d;
    private static final int LF = 0x0a;
    private static final int EOF = 0x1a;
    // block size - DON'T CHANGE - I toyed with the idea of adding 1K support but the code is NOT there yet.
    private static final int bs = 128;
    // PRIVATE STUFF
    private int ebn; // expected incoming block #
    private byte[] data; // our data buffer
    private int dataPos; // our position with the data buffer
    private InputStream in;
    private OutputStream out;
    * Creates a new InputStream allowing you to read the incoming file. All of the XModem
    * protocol functions are handled transparently.
    * As soon as this class is instantiated, it will attempt to iniatate the transfer
    * with the remote computer - if unsuccessful, an IOException will be thrown. If it
    * is successful, reading may commense.
    * NOTE: It is important not to wait too long in between calls to read() - the remote
    * computer will resend a data block if too much time has passed or even just give up
    * on the transfer altogether.
    * @param in InputStream from Serial Line
    * @param out OutputStream from Serial Line
    public XModemRXStream(InputStream in, OutputStream out) throws
    IOException {
    this.in = in;
    this.out = out;
    // Initiate the receive sequence - basically, we send a NAK until the data
    // starts flowing.
    init:for (int t = 0; t < 10; t++) {
    if (XModem.debug) {
    System.out.println("Waiting for response [ try #" + t + " ]");
    long mark = System.currentTimeMillis();
    out.write(NAK);
    // Frequently check to see if the data is flowing, give up after a couple seconds.
    for (; ; ) {
    if (in.available() > 0) {
    break init;
    try {
    Thread.sleep(10);
    catch (Exception e) {}
    if (System.currentTimeMillis() - mark > 2000) {
    break;
    // We have either successfully negotiated the transfer, OR, it was
    // a failure and timed out. Check in.available() to see if we have incoming
    // bytes and that will be our sign.
    if (in.available() == 0) {
    throw new IOException();
    // Initialize some stuff
    ebn = 1; // the first block we see should be #1
    data = new byte[bs];
    dataPos = bs;
    * Reads the next block of data from the remote computer. Most of the real XModem protocol
    * is encapsulated within this method.
    * @throws IOException
    private synchronized void getNextBlock() throws IOException {
    if (XModem.debug) {
    //System.out.println("Getting block #" + ebn);
    // Read block into buffer. There is a 1 sec timeout for each character,
    // otherwise we NAK and start over.
    byte[] buffer;
    recv:for (; ; ) {
    buffer = new byte[bs + 4];
    for (int t = 0; t < 10; t++) {
    System.out.println("\nReceiving block [ #" + ebn + " ]");
    // Read in block
    buffer = new byte[buffer.length];
    for (int i = 0; i < buffer.length; i++) {
    int b = readTimed(1);
    // if EOT - don't worry about the rest of the block.
    if ( (i == 0) && (b == EOT)) {
    buffer[0] = (byte) (b & 0xff);
    break;
    // if CAN - the other side has cancelled the transfer
    if (b == CAN) {
    throw new IOException("cancelled");
    if (b < 0) {
    if (XModem.debug) {
    System.out.println("Time out... NAK'ing");
    out.write(NAK);
    continue recv;
    else {
    buffer[i] = (byte) (b & 0xFF);
    break;
    int type = buffer[0] & 0xff; // either SOH or EOT
    if (type == EOT) {
    if (XModem.debug) {
    System.out.println("EOT!");
    out.write(ACK);
    break;
    int bn = buffer[1] & 0xff; // block number
    int bnc = buffer[2] & 0xff; // one's complement to block #
    if (
    (bn != ebn) && (bn != (ebn - 1)) ||
    (bn + bnc != 255)) {
    if (XModem.debug) {
    System.out.println("NAK'ing type = " + type + " bn = " + bn +
    " ebn = " +
    ebn + " bnc = " + bnc);
    out.write(NAK);
    continue recv;
    byte chksum = buffer[ (buffer.length - 1)];
    byte echksum = 0;
    for (int i = 3; i < (buffer.length - 1); i++) {
    echksum = (byte) ( ( (echksum & 0xff) + (buffer[i] & 0xff)) & 0xff);
    if (chksum != echksum) {
    out.write(NAK);
    continue recv;
    out.write(ACK);
    if (ebn == 255) {
    ebn = 0;
    else {
    ebn++;
    break;
    // We got our block, now save it in our data buffer.
    data = new byte[bs];
    for (int i = 3; i < (buffer.length - 1); i++) {
    data[(i - 3)] = buffer;
    dataPos = 0;
    public synchronized int read() throws IOException {
    // If at the end of our buffer, refill it.
    if (dataPos == bs) {
    try {
    getNextBlock();
    catch (IOException e) {
    throw new IOException();
    // If we're still at end of buffer, say so.
    if ( dataPos == bs) {
    return -1;
    int d = data[dataPos];
    if (d == EOF)
    return -1;
    dataPos++;
    return d;
    * A wrapper around the native read() call that provides the ability
    * to timeout if no data is available within the specified timeout value.
    * @param timeout timeout value in seconds
    * @throws IOException
    * @return int an integer representing the byte value read.
    private int readTimed(int timeout) throws IOException {
    long start = System.currentTimeMillis();
    for (; ; ) {
    if (in.available() > 0) {
    return (in.read());
    try {
    Thread.sleep(10);
    catch (InterruptedException ex) {
    //if (System.currentTimeMillis() - start > timeout * 1000) {
    if (System.currentTimeMillis() - start > timeout * 5000) {
    return -1;
    Here was the output...
    Original file:
    (Commodore CBM SEQ file exported to PC using DirMaster)
    ��
    � �
    � ��� �� �� ��� ��
    � �� �� ���� �� ��� ��
    � ��� ����������������������������������������������
    �� ����� ������� ����� �� ����� ������ ����� ���
    � �� ������ ������ ��� ��� �� ��� ���� �� ������
    � � ���
    ����
    � � ��OWERED BY �OLOR 64 ��� V8
    �UNNING �ETWORK64 V1.26A

    �UPPORTING 38400 �AUD �ATES
    �����/����/�������

    �ESTING �CHO-�ET V1 BETA

    �EATURING �ESSAGES, �ILES,
    �ET�AIL, AND �NLINE �AMES!
    �YS�P: � � � � � � � � �

    �RESS ANY KEY TO LOGIN\C�
    The result when the file was uploaded and received by my XServer:
    ? ? ??OWERED BY ?OLOR 64 ??? V8
    ?UNNING ?ETWORK64 V1.26A
    ?UPPORTING 38400 ?AUD ?ATES
    ?ESTING ?CHO-?ET V1 BETA
    ?EATURING ?ESSAGES, ?ILES,
    ?ET?AIL, AND ?NLINE ?AMES!
    ?YS?P: ? ? ? ? ? ? ? ? ?
    ?RESS ANY KEY TO LOGIN\C?
    The result is different!
    Can someone help me along here... I have been trying to figure out how to do this for approx. a year or so... it has been a very slow process.
    I could use a guru to help me out so I can write the upload and download routines for my Commodore BBS PETSCII Emulation Server.
    Visit http://www.retrogradebbs.com for details.
    Thanks.
    Please help out a dedicated developer who is in over his head...
    -Dave

    Ok. Fair enough. What about general information about Xmodem. This is a hard project because of how obscure the legacy technology is that I am having to implement using Java and MySQL.
    I have two major issues which I have to figure out how to troubleshoot and debug, if possible.
    1. The 23+ blocks exception when a file is being received
    2. The exception which is thrown immediately if I try to receive a binary file instead of an ASCII file.
    I read that telnet is a 7-bit technology and that is why Xmodem, which is an 8-bit technology is not that popular as a viable protocol via telnet, whereas Kermit is, since it was developed for 7-bit systems, i.e. mainframes and minicomputers.
    Is this correct?
    If that is the case, why does www.serio.com have a viable X-Y-ZModem library available (for several hundred $$$ of course) which can be used with both RS-232 serial ports and TCP socket ports? Obviously, it can be done. They are the ONLY company with this library for sale for Java to do this. I cannot justify that $$$ amount for a mere hobby (writing the BBS emulation server for supporting Commodore PETSCII (CG) callers via CGTerm or a native C-64 terminal program using Jim Brain's TCPSER middleware, which emulates a Hayes modem via telnet for telBBSing/retrocomputing.
    I really want to learn how to implement a file transfer protocol, since back in the 80s, I used Xmodem, Punter, Y/Z Modem, etc., a lot to upload and download files via modem at baud rates of 2400, 14.4, 19.2, and 38.4, respectively.
    It's fun to learn how the old skool gurus of telecommunications technology did it. It is one thing to run a BBS which supports these technologies and features, and it is an entirely other thing to learn how to design and develop them yourself for implementation into a project such as I taken on.
    It CAN be done. It WILL be done. However, I have just started my exhaustive research on how it needs to be done. I have read up as much as I could on XModem by Ward C., the father of the protocol.
    But, I have no information to help me figure out why the communications are acting as they do so far.
    Can someone please download the xserver.zip file on my website at:
    www.retrogradebbs.com/projects/xserver.zip
    Compile it. Run it. Connect using HyperTerminal, Netrunner, or another telnet terminal emulation program which supports Xmodem file transfers using WinSock.
    See what happens. With finals due in the next two days, this project will have to be put on hold until after I submit my two final projects.
    If anyone knows what needs to be done to support both ASCII and BINARY file transfers via Xmodem via a socket instead of a modem with RTS/CTS hardware flow control, please respond.
    I know for a fact that this can be done.
    - Dave

  • Getting the data from a TCP/IP packet

    I am dealing with an industrial network that sends and recieves data over TCP/IP between a sort of supervisory system running on Unix and some machines via a bridge that converts messages onto other non TCP/IP networks. This is all old legacy equipment and the bridge now need upgrading. However the original source code is not availiable and no-one is very sure of the messages being sent. I thought it was going to be easy knocking something together in Java to intercept these messages and test various things but have come up against big problems.
    The main problem being that all the data is binary meaning I cant use any of the reader or writer classes I am used too. I am trying to use either DataInputStream or BufferedInputStream to read data in but am struggling. Idealy I need to be able to read (once) the complete data content of each packet that is sent and I need to tell each time a new packet of data arrives so that I can process it as a complete packet. As far as I know there are no eof or eol or any other details that tell me how many bytes of data there are, and they do vary in length, but each packet is a seperate message or message reply.
    I was hoping that there might be someway of getting this information from the TCP/IP layers but cant see how to do it as that all seems to work invisibly. Nor can I see any methods to call on the stream classes that indicate how to tell the lenght of the latest packet or when a new packet has arrived. I am not sure how some of the methods like mark() and reset|() are supposed to be used so am not sure if I couuld use these but am desperate for any help or pointers in the right direction.

    The TCP/IP packets can represent complete messagesThere is no guarantee to this effect anywhere in TCP/IP. Consider the case where a single message requires multiple writes. Consider the case where a write contains the end of one message and the beginning of another. Consider the case where there are multiple messages in a single packet. Consider ... There are just too many of these cases.
    The TCP/IP takes care of numbering the packets so that they can be reasembled in the correct order. Each TCP/IP packet contains information about the size of data the packet contains ...Thank you, I do know how TCP works.
    so in theory if we could get at the TCP/IP layers we should be able to get this information.No. You can get all the packet information out of packets. What you can't get is message information, because it isn't in there. It's in the application protocol, which to TCP/IP is just a stream of bytes. You can get the stream of bytes that the application sent. What it means is up to you.
    I really need to be able to read each packet of data seperately to be able to do anything with itWhy? Given the lack of correlation between writes() and packets and reads() due to TCP streaming, what is the point? And if you want packets you already have them via your sniffer.
    From your first post:
    each packet is a seperate message or message reply.You can't rely on that. There is no guarantee of this anywhere in TCP/IP.
    I also direct your attention to the Nagle algorithm, which coalesces outgoing packets under common conditions.

  • TCP/IP does not let me enable or disable.

    Hi, 
    I am trying to enable TCP/IP in order to access my SQL server remotely but when I select tcp/ip and want to enable = Yes or disabled = no it does not give me the option, it appears a gray empty rectangle. 
    Any idea what might happen?, I will like to post a picture but it does not let me at the moment
    Thank you,

    This one may help.
    Enable Named Pipes and TCP/IP Connections
     Might also ask them over here.
    SQL Server forums on MSDN
    Regards, Dave Patrick ....
    Microsoft Certified Professional
    Microsoft MVP [Windows]
    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees , and confers no rights.

  • Async tcp client and server. How can I determine that the client or the server is no longer available?

    Hello. I would like to write async tcp client and server. I wrote this code but a have a problem, when I call the disconnect method on client or stop method on server. I can't identify that the client or the server is no longer connected.
    I thought I will get an exception if the client or the server is not available but this is not happening.
    private async void Process()
    try
    while (true)
    var data = await this.Receive();
    this.NewMessage.SafeInvoke(Encoding.ASCII.GetString(data));
    catch (Exception exception)
    How can I determine that the client or the server is no longer available?
    Server
    public class Server
    private readonly Dictionary<IPEndPoint, TcpClient> clients = new Dictionary<IPEndPoint, TcpClient>();
    private readonly List<CancellationTokenSource> cancellationTokens = new List<CancellationTokenSource>();
    private TcpListener tcpListener;
    private bool isStarted;
    public event Action<string> NewMessage;
    public async Task Start(int port)
    this.tcpListener = TcpListener.Create(port);
    this.tcpListener.Start();
    this.isStarted = true;
    while (this.isStarted)
    var tcpClient = await this.tcpListener.AcceptTcpClientAsync();
    var cts = new CancellationTokenSource();
    this.cancellationTokens.Add(cts);
    await Task.Factory.StartNew(() => this.Process(cts.Token, tcpClient), cts.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
    public void Stop()
    this.isStarted = false;
    foreach (var cancellationTokenSource in this.cancellationTokens)
    cancellationTokenSource.Cancel();
    foreach (var tcpClient in this.clients.Values)
    tcpClient.GetStream().Close();
    tcpClient.Close();
    this.clients.Clear();
    public async Task SendMessage(string message, IPEndPoint endPoint)
    try
    var tcpClient = this.clients[endPoint];
    await this.Send(tcpClient.GetStream(), Encoding.ASCII.GetBytes(message));
    catch (Exception exception)
    private async Task Process(CancellationToken cancellationToken, TcpClient tcpClient)
    try
    var stream = tcpClient.GetStream();
    this.clients.Add((IPEndPoint)tcpClient.Client.RemoteEndPoint, tcpClient);
    while (!cancellationToken.IsCancellationRequested)
    var data = await this.Receive(stream);
    this.NewMessage.SafeInvoke(Encoding.ASCII.GetString(data));
    catch (Exception exception)
    private async Task Send(NetworkStream stream, byte[] buf)
    await stream.WriteAsync(BitConverter.GetBytes(buf.Length), 0, 4);
    await stream.WriteAsync(buf, 0, buf.Length);
    private async Task<byte[]> Receive(NetworkStream stream)
    var lengthBytes = new byte[4];
    await stream.ReadAsync(lengthBytes, 0, 4);
    var length = BitConverter.ToInt32(lengthBytes, 0);
    var buf = new byte[length];
    await stream.ReadAsync(buf, 0, buf.Length);
    return buf;
    Client
    public class Client
    private TcpClient tcpClient;
    private NetworkStream stream;
    public event Action<string> NewMessage;
    public async void Connect(string host, int port)
    try
    this.tcpClient = new TcpClient();
    await this.tcpClient.ConnectAsync(host, port);
    this.stream = this.tcpClient.GetStream();
    this.Process();
    catch (Exception exception)
    public void Disconnect()
    try
    this.stream.Close();
    this.tcpClient.Close();
    catch (Exception exception)
    public async void SendMessage(string message)
    try
    await this.Send(Encoding.ASCII.GetBytes(message));
    catch (Exception exception)
    private async void Process()
    try
    while (true)
    var data = await this.Receive();
    this.NewMessage.SafeInvoke(Encoding.ASCII.GetString(data));
    catch (Exception exception)
    private async Task Send(byte[] buf)
    await this.stream.WriteAsync(BitConverter.GetBytes(buf.Length), 0, 4);
    await this.stream.WriteAsync(buf, 0, buf.Length);
    private async Task<byte[]> Receive()
    var lengthBytes = new byte[4];
    await this.stream.ReadAsync(lengthBytes, 0, 4);
    var length = BitConverter.ToInt32(lengthBytes, 0);
    var buf = new byte[length];
    await this.stream.ReadAsync(buf, 0, buf.Length);
    return buf;

    Hi,
    Have you debug these two applications? Does it go into the catch exception block when you close the client or the server?
    According to my test, it will throw an exception when the client or the server is closed, just log the exception message in the catch block and then you'll get it:
    private async void Process()
    try
    while (true)
    var data = await this.Receive();
    this.NewMessage.Invoke(Encoding.ASCII.GetString(data));
    catch (Exception exception)
    Console.WriteLine(exception.Message);
    Unable to read data from the transport connection: An existing   connection was forcibly closed by the remote host.
    By the way, I don't know what the SafeInvoke method is, it may be an extension method, right? I used Invoke instead to test it.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Jabber 9.2 Failback from TCP 5222 to TCP 443

    Hi all,
    if i check the deployment guide for J4W i see that it supports failback to https, if XMPP (TCP 5222) is not available.
    http://www.cisco.com/en/US/docs/voice_ip_comm/jabber/Windows/9_2/JABW_BK_C9731738_00_jabber-windows-install-config_chapter_010.html#JABW_RF_P3E0FDE4_00
    We have noticed that the feature is not available in our cloud based deployment.
    Do i have to enable eny specific setting in Webex Connect Admin?
    Any other experiences?
    Steffen

    One of us does not understand the feature.
    Of course is 5222 blocked, because I want to see jabber doing a fail back to https.
    Do I misunderstand the fail back?
    Sent from Cisco Technical Support iPad App

  • ASA 5505:Static Routing and Deny TCP connection because of bad flag

    Hi Everybody,
    I have a problem. I made a VPN site-2-site with 2 ASA 5505. The VPN works great. And I create a redondant link if the VPN failed.
    In fact, I use Dual ISP with route tracking. If the VPN fails, the default route change to an ISDN router, situated on the inside interface.
    When I simulated a VPN fail, the ASAs routes switch automatically on backup ISDN routers. If I ping elements, it works great. But when i try TCP connection like telnet, the ASAs deny connections:
    %PIX|ASA-6-106015: Deny TCP (no connection) from 172.16.10.57/35066 to 172.16.18.1/23 flags tcp_flags on interface interface_name.
    the security appliance discarded a TCP packet that has no associated connection in the security appliance connection table. The security appliance looks for a SYN flag in the packet, which indicates a request to establish a new connection. If the SYN flag is not set, and there is not an existing connection, the security appliance discards the packet.
    thanks!
    EDIT: On the schema, The interface of the main asa is 172.16.18.148...

    Check if the xlate timer is set greater than or equal to what the conn timer, so as not to have connections waiting on xlates that no longer exist. To minimize the number of attempts, enable "service resetinbound" . The PIX will reset the connection and make it go away. Without service resetinbound, the PIX Firewall drops packets that are denied and generates a syslog message stating that the SYN was a denied connection.

  • Asa 5505 vpn from internet native vpn client, tcp discarted 1723

    Hello to all,
    I'm configuring this asa for to connect home users to my network using the native microsoft vpn clients with windows xp over internet.
    This asa have on the outside interface one public intenet ip and in the inside inferface have configured in the the network 192.168.0.x and i want to acces to this network from internet users using native vpn clients.
    I tested with one pc connected directly to the outside interface and works well, but when i connect this interface to internet and tried to connect on user to the vpn i can see in the logs this, and can't connect with error 800.
    TCP request discarded from "public_ip_client/61648" to outside:publicip_outside_interface/1723"
    Can help me please?, Very thanks in advance !
    (running configuration)
    : Saved
    ASA Version 8.4(3)
    hostname ciscoasa
    enable password *** encrypted
    passwd *** encrypted
    names
    interface Ethernet0/0
    switchport access vlan 2
    interface Ethernet0/1
    interface Ethernet0/2
    interface Ethernet0/3
    interface Ethernet0/4
    interface Ethernet0/5
    interface Ethernet0/6
    interface Ethernet0/7
    interface Vlan1
    nameif inside
    security-level 100
    ip address 192.168.0.1 255.255.255.0
    interface Vlan2
    nameif outside
    security-level 0
    ip address publicinternetaddress 255.255.255.0
    ftp mode passive
    same-security-traffic permit inter-interface
    same-security-traffic permit intra-interface
    object network obj_any
    subnet 0.0.0.0 0.0.0.0
    object network gatewayono
    host gatewayofinternetprovideraccess
    description salida gateway ono
    object service remotointerno
    service tcp destination eq 3389
    description remoto
    object network pb_clienteing_2
    host 192.168.0.15
    description Pebble cliente ingesta 2
    object service remotoexternopebble
    service tcp destination eq 5353
    description remotoexterno
    object network actusmon
    host 192.168.0.174
    description Actus monitor web
    object service Web
    service tcp destination eq www
    description 80
    object network irdeto
    host 192.168.0.31
    description Irdeto
    object network nmx_mc_p
    host 192.168.0.60
    description NMX Multicanal Principal
    object network nmx_mc_r
    host 192.168.0.61
    description NMX multicanal reserva
    object network tarsys
    host 192.168.0.10
    description Tarsys
    object network nmx_teuve
    host 192.168.0.30
    description nmx cabecera teuve
    object network tektronix
    host 192.168.0.20
    description tektronix vnc
    object service vnc
    service tcp destination eq 5900
    description Acceso vnc
    object service exvncnmxmcr
    service tcp destination eq 5757
    description Acceso vnc externo nmx mc ppal
    object service exvncirdeto
    service tcp destination eq 6531
    description Acceso vnc externo irdeto
    object service exvncnmxmcp
    service tcp destination eq 5656
    object service exvnctektronix
    service tcp destination eq 6565
    object service exvncnmxteuve
    service tcp destination eq 6530
    object service ssh
    service tcp destination eq ssh
    object service sshtedialexterno
    service tcp destination eq 5454
    object-group service puertosabiertos tcp
    description remotedesktop
    port-object eq 3389
    object-group protocol TCPUDP
    protocol-object udp
    protocol-object tcp
    object-group network DM_INLINE_NETWORK_1
    network-object object irdeto
    network-object object nmx_mc_p
    network-object object nmx_mc_r
    network-object object nmx_teuve
    network-object object tektronix
    object-group service vpn udp
    port-object eq 1723
    object-group service DM_INLINE_TCP_1 tcp
    port-object eq https
    port-object eq pptp
    object-group network DM_INLINE_NETWORK_2
    network-object object actusmon
    network-object object tarsys
    access-list inside_access_in extended permit object remotointerno any any
    access-list inside_access_in extended permit object ssh any any
    access-list inside_access_in extended permit object-group TCPUDP any any eq www
    access-list inside_access_in extended permit icmp any any
    access-list inside_access_in extended permit object vnc any any
    access-list inside_access_in extended permit ip any any
    access-list outside_access_in extended permit object remotointerno any object pb_clienteing_2
    access-list outside_access_in extended permit object-group TCPUDP any object actusmon eq www
    access-list outside_access_in remark Acceso tedial ssh
    access-list outside_access_in extended permit tcp any object tarsys eq ssh
    access-list outside_access_in extended permit object vnc any object-group DM_INLINE_NETWORK_1
    access-list outside_access_in extended permit tcp any any object-group DM_INLINE_TCP_1
    access-list outside_access_in extended deny icmp any any
    access-list corporativa standard permit 192.168.0.0 255.255.255.0
    access-list Split-Tunnel-ACL standard permit 192.168.0.0 255.255.255.0
    pager lines 24
    logging enable
    logging monitor debugging
    logging asdm debugging
    logging debug-trace
    mtu inside 1500
    mtu outside 1500
    ip local pool clientesvpn 192.168.0.100-192.168.0.110 mask 255.255.255.0
    ip local pool clientesvpn2 192.168.1.120-192.168.1.130 mask 255.255.255.0
    icmp unreachable rate-limit 1 burst-size 1
    icmp permit any inside
    icmp permit any outside
    no asdm history enable
    arp timeout 14400
    nat (outside,inside) source static any interface destination static interface actusmon service Web Web unidirectional
    nat (outside,inside) source static any interface destination static interface tarsys service sshtedialexterno ssh unidirectional
    nat (outside,inside) source static any interface destination static interface pb_clienteing_2 service remotoexternopebble remotointerno unidirectional
    nat (outside,inside) source static any interface destination static interface irdeto service exvncirdeto vnc unidirectional
    nat (outside,inside) source static any interface destination static interface nmx_mc_p service exvncnmxmcp vnc unidirectional
    nat (outside,inside) source static any interface destination static interface nmx_mc_r service exvncnmxmcr vnc unidirectional
    nat (outside,inside) source static any interface destination static interface nmx_teuve service exvncnmxteuve vnc unidirectional
    nat (outside,inside) source static any interface destination static interface tektronix service exvnctektronix vnc unidirectional
    nat (any,outside) source dynamic DM_INLINE_NETWORK_2 interface
    access-group inside_access_in in interface inside
    access-group outside_access_in in interface outside per-user-override
    route outside 0.0.0.0 0.0.0.0 gatewayinternetprovideracces 1
    dynamic-access-policy-record DfltAccessPolicy
    user-identity default-domain LOCAL
    eou allow none
    aaa local authentication attempts max-fail 10
    http server enable
    http 192.168.0.0 255.255.255.0 inside
    no snmp-server location
    no snmp-server contact
    snmp-server enable traps snmp authentication linkup linkdown coldstart warmstart
    no sysopt connection permit-vpn
    crypto ipsec ikev1 transform-set ESP-AES-256-MD5 esp-aes-256 esp-md5-hmac
    crypto ipsec ikev1 transform-set ESP-DES-SHA esp-des esp-sha-hmac
    crypto ipsec ikev1 transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
    crypto ipsec ikev1 transform-set ESP-DES-MD5 esp-des esp-md5-hmac
    crypto ipsec ikev1 transform-set ESP-AES-192-MD5 esp-aes-192 esp-md5-hmac
    crypto ipsec ikev1 transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac
    crypto ipsec ikev1 transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac
    crypto ipsec ikev1 transform-set ESP-AES-128-SHA esp-aes esp-sha-hmac
    crypto ipsec ikev1 transform-set ESP-AES-192-SHA esp-aes-192 esp-sha-hmac
    crypto ipsec ikev1 transform-set ESP-AES-128-MD5 esp-aes esp-md5-hmac
    crypto ipsec ikev1 transform-set clientewindowsxp esp-3des esp-md5-hmac
    crypto ipsec ikev1 transform-set clientewindowsxp mode transport
    crypto ipsec ikev1 transform-set L2TP-IKE1-Transform-Set esp-aes esp-sha-hmac
    crypto ipsec ikev1 transform-set L2TP-IKE1-Transform-Set mode transport
    crypto ipsec ikev2 ipsec-proposal DES
    protocol esp encryption des
    protocol esp integrity sha-1 md5
    crypto ipsec ikev2 ipsec-proposal 3DES
    protocol esp encryption 3des
    protocol esp integrity sha-1 md5
    crypto ipsec ikev2 ipsec-proposal AES
    protocol esp encryption aes
    protocol esp integrity sha-1 md5
    crypto ipsec ikev2 ipsec-proposal AES192
    protocol esp encryption aes-192
    protocol esp integrity sha-1 md5
    crypto ipsec ikev2 ipsec-proposal AES256
    protocol esp encryption aes-256
    protocol esp integrity sha-1 md5
    crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 1 set ikev1 transform-set clientewindowsxp
    crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 1 set ikev2 ipsec-proposal AES256 AES192 AES 3DES DES
    crypto dynamic-map L2TP-MAP 10 set ikev1 transform-set L2TP-IKE1-Transform-Set
    crypto map inside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP
    crypto map inside_map interface inside
    crypto map outside_map 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP
    crypto map L2TP-VPN-MAP 20 ipsec-isakmp dynamic L2TP-MAP
    crypto map L2TP-VPN-MAP interface outside
    crypto ca trustpoint _SmartCallHome_ServerCA
    crl configure
    crypto ikev2 policy 1
    encryption aes-256
    integrity sha
    group 5 2
    prf sha
    lifetime seconds 86400
    crypto ikev2 policy 10
    encryption aes-192
    integrity sha
    group 5 2
    prf sha
    lifetime seconds 86400
    crypto ikev2 policy 20
    encryption aes
    integrity sha
    group 5 2
    prf sha
    lifetime seconds 86400
    crypto ikev2 policy 30
    encryption 3des
    integrity sha
    group 5 2
    prf sha
    lifetime seconds 86400
    crypto ikev2 policy 40
    encryption des
    integrity sha
    group 5 2
    prf sha
    lifetime seconds 86400
    crypto ikev2 enable outside client-services port 443
    crypto ikev2 remote-access trustpoint Ingenieria
    crypto ikev1 enable inside
    crypto ikev1 enable outside
    crypto ikev1 policy 5
    authentication pre-share
    encryption 3des
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 10
    authentication crack
    encryption aes-256
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 20
    authentication rsa-sig
    encryption aes-256
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 30
    authentication pre-share
    encryption aes-256
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 40
    authentication crack
    encryption aes-192
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 50
    authentication rsa-sig
    encryption aes-192
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 60
    authentication pre-share
    encryption aes-192
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 70
    authentication crack
    encryption aes
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 80
    authentication rsa-sig
    encryption aes
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 90
    authentication pre-share
    encryption aes
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 100
    authentication crack
    encryption 3des
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 110
    authentication rsa-sig
    encryption 3des
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 130
    authentication crack
    encryption des
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 140
    authentication rsa-sig
    encryption des
    hash sha
    group 2
    lifetime 86400
    crypto ikev1 policy 150
    authentication pre-share
    encryption des
    hash sha
    group 2
    lifetime 86400
    telnet 192.168.0.0 255.255.255.0 inside
    telnet timeout 5
    ssh timeout 5
    console timeout 0
    dhcpd dns 8.8.8.8
    dhcpd auto_config outside
    dhcpd address 192.168.0.5-192.168.0.36 inside
    dhcpd dns 8.8.8.8 8.8.4.4 interface inside
    dhcpd auto_config outside interface inside
    dhcpd enable inside
    no threat-detection basic-threat
    no threat-detection statistics access-list
    no threat-detection statistics tcp-intercept
    ssl trust-point Ingenieria outside
    webvpn
    tunnel-group-list enable
    group-policy DefaultRAGroup internal
    group-policy DefaultRAGroup attributes
    wins-server none
    dns-server value 192.168.0.1
    vpn-tunnel-protocol l2tp-ipsec
    default-domain none
    group-policy DfltGrpPolicy attributes
    dns-server value 8.8.8.8
    vpn-tunnel-protocol ikev1 ikev2 l2tp-ipsec
    group-policy ingenieria internal
    group-policy ingenieria attributes
    vpn-tunnel-protocol l2tp-ipsec
    default-domain none
    group-policy L2TP-Policy internal
    group-policy L2TP-Policy attributes
    dns-server value 8.8.8.8
    vpn-tunnel-protocol l2tp-ipsec
    split-tunnel-policy tunnelspecified
    split-tunnel-network-list value Split-Tunnel-ACL
    intercept-dhcp enable
    username ingenieria password 4fD/5xY/6BwlkjGqMZbnKw== nt-encrypted privilege 0
    username ingenieria attributes
    vpn-group-policy ingenieria
    username rjuve password SjBNOLNgSkUi5KWk/TUsTQ== nt-encrypted
    tunnel-group DefaultRAGroup general-attributes
    address-pool clientesvpn
    address-pool clientesvpn2
    authentication-server-group (outside) LOCAL
    authorization-server-group LOCAL
    default-group-policy L2TP-Policy
    authorization-required
    tunnel-group DefaultRAGroup ipsec-attributes
    ikev1 pre-shared-key *****
    tunnel-group DefaultRAGroup ppp-attributes
    no authentication chap
    authentication ms-chap-v2
    class-map inspection_default
    policy-map type inspect dns preset_dns_map
    parameters
      message-length maximum client auto
      message-length maximum 512
    policy-map global_policy
    prompt hostname context
    call-home reporting anonymous
    Cryptochecksum:59b54f1d10fe829aeb47bafee57ba95e
    : end
    no asdm history enable

    Yes with this command creates this
    policy-map global_policy
        class inspection_default
         inspect pptp
    But don't work. I also tried to add the pptp and gre in the outside access rules but nothing...
    I don't understand why if a connect directly to the outside interface with the same outside network works well.
    ej: the pc have 89.120.145.14 ip and the outside asa have 89.120.145.140 and if I create one vpn in this pc the outside ip 89.120.145.140 with the correct parameters the asa don't discart 1723 and connect ok but if this ip is not of this range discards 1723...

  • Cisco ASA 5505 Reset-I Problem with TCP State Bypass

    Hello,
    I have a Cisco ASA 5505 that functions as my primary firewall and a Mitel 5000 controller behind it. I have two external phone users that have been connecting through the firewall with no issues for six months until about two weeks ago. I am now seeing the following log entry on the phone trying to connect to the Mitel Controller.
    6
    May 16 2014
    14:52:52
    302014
    72.135.115.37
    6915
    192.168.20.2
    6801
    Teardown TCP connection 1203584 for outside:72.135.115.37/6915 to inside:192.168.20.2/6801 duration 0:00:00 bytes 0 TCP Reset-I
    My phones are designed to work with the Mitel 5000 and Mitel 3300 phone controllers. The 5000 will only use port 6800 for call control, while the 3300 will use 6801 (Secured Minet), 6802 (Minet SSH), and if those fail, port 6800 (Minet Unsecured). When the phones initiate a connection, they try 6801 first. If 6801 is unavailable, the phone controller adds the RST flag to the ACK packet. When the phone sees the RST flag, it is supposed to reset and use the next port (6802). The same process happens again for port 6802, then the phone knows to try 6800. The problem is that the ASA sees the RST flag now and terminates the connection at the firewall. Therefore, the phones never see the RST flag, and continue to try the connection with port 6801.
    I have tried to use the TCP State Bypass feature to correct the situation, but the log shows that the connection is still being terminated immediately by the firewall. I am a novice when it comes to configuring the ASA. Any help would be greatly appreciated, as the company that I bought the phone system from is out of troubleshooting options. I do not think that I have made any changes to the firewall around this time. I have packet captures and logs from my ASA and I have wireshark data on the inside of my network. I need to figure out how to configure the ASA so that it ignores the RST flag and sends the packet back to the source.
    Any help would be greatly appreciated!

    Thanks Rizwan,
    Still no luck.  I can't even ping the otherside (office)..  I am not sure if i'm running the debug rightway.   Here are my results...
    homeasa(config)# ping inside 10.10.5.254............. (Office CIsco ASA5505 IP on local side.  I also tried pinging the server on other side (office) whic is @10.10.5.10 and got the same result)
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 10.10.5.254, timeout is 2 seconds:
    Success rate is 0
    homeasa(config)# debug crypto isakmp 7
    homeasa(config)# debug crypto ipsec 7
    homeasa(config)# sho crypto isakmp 7
                                       ^
    ERROR: % Invalid input detected at '^' marker.
    homeasa(config)# sho crypto isakmp
    There are no isakmp sas
    Global IKE Statistics
    Active Tunnels: 0
    Previous Tunnels: 0
    In Octets: 0
    In Packets: 0
    In Drop Packets: 0
    In Notifys: 0
    In P2 Exchanges: 0
    In P2 Exchange Invalids: 0
    In P2 Exchange Rejects: 0
    In P2 Sa Delete Requests: 0
    Out Octets: 0
    Out Packets: 0
    Out Drop Packets: 0
    Out Notifys: 0
    Out P2 Exchanges: 0
    Out P2 Exchange Invalids: 0
    Out P2 Exchange Rejects: 0
    Out P2 Sa Delete Requests: 0
    Initiator Tunnels: 0
    Initiator Fails: 0
    Responder Fails: 0
    System Capacity Fails: 0
    Auth Fails: 0
    Decrypt Fails: 0
    Hash Valid Fails: 0
    No Sa Fails: 0
    Global IPSec over TCP Statistics
    Embryonic connections: 0
    Active connections: 0
    Previous connections: 0
    Inbound packets: 0
    Inbound dropped packets: 0
    Outbound packets: 0
    Outbound dropped packets: 0
    RST packets: 0
    Recevied ACK heart-beat packets: 0
    Bad headers: 0
    Bad trailers: 0
    Timer failures: 0
    Checksum errors: 0
    Internal errors: 0
    hjnavasa(config)# sh crypto ipsec sa peer 96.xxx.xxx.118
    There are no ipsec sas
    homeasa(config)#

  • Need info on Flash to Hardware Communication via TCP/IP

    Need someone to throw light on how to talk to hardware
    devices from flash. For instance a message needs to be sent to
    mobile on click of a button, looks complex but this just an
    example. would like to just the method that one needs to follow to
    achive the requrement.

    Go Straight for RMI. Load file contents into a buffer. Serialize it as an object and pass it from client to servant. You don't have to deal with TCP-IP or sockets plus you can operate at a much higher level.
    Look at an RMI tutorial.

  • TCP active open: Failed connect()    Error: Connection timed out SMTP

    Hi,
    Messaging server version is,
    ./imsimta version
    Sun Java(tm) System Messaging Server 6.2-6.01 (built Apr 3 2006)
    libimta.so 6.2-6.01 (built 11:20:35, Apr 3 2006)
    SunOS bglbbmr1-a-fixed 5.9 Generic_118558-28 sun4u sparc SUNW,Sun-Fire-V440
    17-Dec-2008 10:47:40.08 1730.8e.741
    tcp_local Q 4 [email protected] rfc822;[email protected] [email protected] /mta/queue/queue/tcp_local/013/ZUg0i1t9I0ZG~.00 <[email protected]>; TCP active open: Failed connect() Error: Connection timed out SMTP/xyz.my-domain.in
    I have been getting this above error on my mail server from last
    4-5 days. I am getting complaints from end users that the users can't
    send any mails using Outlook but I did check with my test user I can
    send mail by using webmail.
    The Failed MX lookup Errors also getting in my logs the error detail given bellow.
    17-Dec-2008 10:47:39.65 1730.91.737
    tcp_local - Y TCP|0.0.0.0||209.85.143.114|25 SMTP/airtelmail.in/aspmx.l.google.com
    17-Dec-2008 10:47:39.92 1754.41.255
    tcp_notify - Y SMTP/infomedia18.in/infomedia18.in
    17-Dec-2008 10:47:39.92 1754.41.256
    tcp_notify Q 7 rfc822;[email protected] [email protected] /mta/queue/queue/tcp_notify/017/ZXg0i1t3U_ZoD.00 <[email protected]>; Failed MX lookup; try again later
    17-Dec-2008 10:47:39.94 1754.41.257
    tcp_notify Q 6 rfc822;[email protected] [email protected] /mta/queue/queue/tcp_notify/010/ZXg0i1t3U_ZoF.00 <0KBZ003MRGU7MQ30@my-domain> Failed MX lookup; try again later
    I tried stopping and starting msg service using stop-msg and start-msg to sort out this above problem but no result. :(
    When I do check the tcp_local queue it has been growing every day as well the tcp_notification queue also.
    /opt/SUNWmsgsr/sbin/imsimta qm su
    Messages
    Channel Queued Size (Kb) Oldest
    tcp_notify 10741 1080610.61 16 Dec, 00:59:24
    tcp_local 8334 733849.31 15 Dec, 00:19:00
    tcp_lmtpcn 0 0.00
    tcp_be 0 0.00
    reprocess 0 0.00
    process 0 0.00
    conversion 0 0.00
    Totals 19075 1814459.92
    This queues are increasing day by day.
    One more thing is that I cant see a service/channel called CONVERSION running on my server when i do use this command.
    ps -aef | grep conversion
    root 6144 6000 0 11:14:28 pts/1 0:00 grep conversion
    When i try to start it using imsimta qm utility, output shows as
    qm.maint>; start conversion
    QM-I-STARTED, channel was not stopped
    qm.maint>;
    Later I stopped and started conversion channel
    qm.maint>; stop conversion
    QM-I-STOPPED, channel stopped
    qm.maint>; start conversion
    QM-I-STARTED, channel started
    qm.maint>;
    I can see that on other servers the conversion channel is running and few msges are in queue. I do have other servers which running the same messaging server. But I am not getting why don't on this server. Where both servers having the same configuration.
    Please, help me to sort out this issue.
    Thanks in advance....
    BSK

    Thanks Mr. Shane,
    The server which is running conversion channel.
    ps -eaf|grep conversion
    mailserv 16824 8472 3 17:08:11 ? 0:48 /opt/SUNWmsgsr/lib/conversion
    mailserv 28728 8472 0 17:17:30 ? 0:00 /opt/SUNWmsgsr/lib/conversion
    root 1057 26387 0 17:18:12 pts/1 0:00 grep conversion
    more /opt/SUNWmsgsr/config/conversions
    in-channel=*; in-type=application; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=x-zip-compressed; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=image; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=audio; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=video; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    Following entry from /opt/SUNWmsgsr/lib/config-templates/imta_tailor
    IMTA_CONVERSION_FILE=<msg.RootPathUNIX>/config/conversions
    The server which doesnt show running conversion channel
    #more /opt/SUNWmsgsr/config/conversions
    !in-channel=*; in-type=*; in-subtype=*; in-disposition=*;
    ! parameter-symbol-0=NAME; parameter-copy-0=*;
    ! dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    ! message-header-file=2; original-header-file=1;
    ! override-header-file=1; override-option-file=1;
    ! command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=application; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=x-zip-compressed; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=image; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=audio; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    in-channel=*; in-type=video; in-subtype=*; in-disposition=*;
    parameter-symbol-0=NAME; parameter-copy-0=*;
    dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
    message-header-file=2; original-header-file=1;
    override-header-file=1; override-option-file=1;
    command="/opt/SUNWmsgsr/private/virusscan.sh"
    Following entry from /opt/SUNWmsgsr/lib/config-templates/imta_tailor
    IMTA_CONVERSION_FILE=<msg.RootPathUNIX>/config/conversions
    Is this above information u r asking?
    As u wrote erlier, the conversion channel works some times and some times doesn't work.
    Thanks lot...
    BSKADAM

  • TCP Open and Close using NI TCP VI's

    Do I need to close the TCP connections on both ends.  For example, I have a "server" that Listens and then a client that opens the TCP connection.  Do I have to close the TCP connections on both ends.  I'm closing it at the client side but is it also suppose to be closed at the Listening end?

    Guy04 wrote:
    Do I need to close the TCP connections on both ends.  For example, I have a "server" that Listens and then a client that opens the TCP connection.  Do I have to close the TCP connections on both ends.  I'm closing it at the client side but is it also suppose to be closed at the Listening end?
    Whenever you optain a LabVIEW refnum through an Open or similar function you should close it at some point too. A TCP refnum is really sort of a pointer to a local network socket and therefore represents resources in the form of memory and network stack management information. Not closing a connection refnum returned by the listen node may prevent your server to serve new connections after some time, since all internal network ports are blocked or the nework stack runs out of resources.
    So close the connection refnum returned by the Listen function after the server is done serving your client and of course do the same on the client side as you already did. Also if you use Create Listener and Wait on Listener (which allows you to write server applications that can serve multiple connections simultanously) close the Listener refnum too when your server is done. Not doing so may prevent the server to be opened at the same port without restarting LabVIEW or at least your application.
    Rolf Kalbermatter
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Opening and closing Multiple TCP connection​s issues

    Hi all I am having an issue with the TCP VI’s and wondering if anyone has experienced this issue.
    My application is required to scan 50-100 IP addresses (statically assigned) and discover if an Ethernet device is connect at that IP address. Currently I am able to achieve this by opening a TCP connection and testing the error cluster to determine if a timeout has occurred (no timeout error  means Ethernet device available at the IP address). I then ensure that the TCP connections are closed.
    The issue I am have is that I require a 1 second delay between the  TCP open and the TCP close which significantly slows down the process. Without the 1 second delay the vi successfully connects to the device once then fails to make any TCP connect regardless of the time delay until the PC is reset.  
    If anyone has any advice I would be very grateful
    David Barr
    P.S. I have attached a simplified section of code showing this issue
    Attachments:
    TCP Open close issue.vi ‏15 KB

    smercurio_fc wrote:
    If I understand you correctly you want the time delay to be 1 second if there's a successful connection....
    While I don't have a specific answer for this problem. I want to clarify for him. I believe the issue is, what if all connections ARE there? That means you keep returning a wait of 1 second 50-100 times so It takes 50-100 seconds just to initialize. I think the user is looking for a way to check for valid connections, but do so in such a way that eliminates the need for a wait which is greatly slowing things down.
    CLA, LabVIEW Versions 2010-2013

  • My MBP has started to send out TCP packets larger than the MTU on the NIC - is there any place that this can be overriden?

    Got a very weird issue here and wondering if anyone has any other ideas. Basically over the wired NIC only, my Mac has started to send out large HTTP/HTTPS packets from the browser (> 1500 bytes) Captures show packet sizes from 2000 all the way to 4000 sometimes. This happens in Firefox and Chrome so doesn't appear to be application related.
    This causes fragmentation issues and traffic drops which basically causes most of my websites and  tools to crash and burn (and I get all sorts of SSL errors from applications, etc).
    It appears to be limited to just TCP packets as pings with the DF bit set will not send any larger than 1500 bytes.
    However if I switch to wireless, everything works fine and captures show the correct maximum packet size of 1500 for all packets leaving my client.
    The MTU on the  en0 interface is 1500 as per ifconfig and I made sure that it was set to 1500 in Network config panel (because there is an option for jumbo frames there which bumps up the MTU).
    A packet capture also shows that during the three way handshake the TCP MSS is successfully sent and negotiated as 1480, but then it appears to ignore that when sending packets later in the TCP stream.
    I've rebooted, upgraded to 10.7.4, checked the "sysctl" outputs and matched against a Mac not having the issue.
    This is the newest MBP 15 inch model.
    Any other ideas on things to check?

    Have you used any sort of "tuner" software? You are obviously an advanced user. Sometimes we hack things up and forget about it later. If you are sure you didn't do that, maybe poke around with IPv6 settings. Supposedly people are trying to enable that and it is going to be a disaster.

Maybe you are looking for

  • Restore from Time Capsule after Hard Drive Crash

    The HD on my iMac crashed Christmas Day. I have been running backups on Time Machine to a Time Capsule since I purchased the iMac (and also backing up a MacBook Air), but never had any occasion to see if it worked. I yesterday got the computer back w

  • How to display query result in seperated page.

    How to display query result in seperated page, if the results are very big (more than 5000 records) and there are so many concurrent users (about 500 - 1000 users). Are there any solutions or frameworks? Plese help me ......... thanks, --bhasin

  • OS data in Audit Vault

    Hi folks! In the documentation on the Audit Vault webpage it is said that it is possible to get OS data into the Audit Vault. However I do not see this in the documentation. So my question is : How can I get data from the OS (log data) into the Audit

  • Physical Servers Cloning

    I'm sure Clonezilla should work by the way. I've just never had cause to set up more than a few machines at a time, so have never used it. RobT.

  • How to compare substitution variable name to static member names (not data)?

    Is there a way to write a BSO member formula that compares a substitution variable against the name of a static member (not the data value of the member) For example, I have a BSO database that has the sub variable &CurrMth (which is set the real cur