ЦП SQL Profiler / единицы продолжительности

Вот мой код отлично работает для ReconnectionManager

1) Добавить addConnectionListener на xmpp соединение

XMPPConnectionListener mConnectionListener = new XMPPConnectionListener(username);
connection.addConnectionListener(mConnectionListener);

2), если соединение закрыто, то переподключиться автоматически, используя класс ReconnectionManager

 ReconnectionManager reconnectionManager = ReconnectionManager.getInstanceFor(connection);
 reconnectionManager.enableAutomaticReconnection();
 reconnectionManager.setEnabledPerDefault(true);

3) ConnectionListener для переподключения, подключения и аутентификации на сервере. если соединение успешно аутентифицировано на сервере, зарегистрируйте также классы PingManager и ServerPingWithAlarmManager.

public class XMPPConnectionListener implements ConnectionListener {
    String username="";
    public XMPPConnectionListener(String username){
        this.username=username;
    }
    @Override
    public void connected(final XMPPConnection connectionObeject) {

        sendPresenceAvailable();
        Log.d(TAG, "xmpp Connected()");
        connected = true;

    }

    @Override
    public void connectionClosed() {

        Log.d(TAG, "xmpp ConnectionCLosed()");

        isAuthenticatedPreviouly=false;
        connected = false;

        loggedin = false;

    }

    @Override
    public void connectionClosedOnError(Exception arg0) {
        Log.d(TAG, "xmpp ConnectionClosedOnError() :"+System.currentTimeMillis());

        isAuthenticatedPreviouly=false;
        connected = false;

        loggedin = false;
    }

    @Override
    public void reconnectingIn(int arg0) {
        Log.d(TAG, "xmpp reconnectingIn() :"+System.currentTimeMillis());

        loggedin = false;
    }

    @Override
    public void reconnectionFailed(Exception arg0) {
        Log.d(TAG, "xmpp ReconnectionFailed!");
        connected = false;

       // chat_created = false;
        loggedin = false;
        try {
            connection.connect();
        } catch (SmackException | IOException | XMPPException | InterruptedException exception) {
            exception.printStackTrace();
        }
    }

    @Override
    public void reconnectionSuccessful() {
        Log.d(TAG, "xmpp ReconnectionSuccessful");
        connected = true;
        sendPresenceAvailable();
        loggedin = false;
    }

    @Override
    public void authenticated(XMPPConnection connection2, boolean resumed) {

        Log.d(TAG, "xmpp Type Main Authenticated() :" + connection.isAuthenticated());

        if(connection.isAuthenticated()) {

            ServerPingWithAlarmManager.getInstanceFor(connection).setEnabled(true);

            PingManager pingManager = PingManager.getInstanceFor(connection);
            pingManager.setPingInterval(10);

            try {
                pingManager.pingMyServer();
                pingManager.pingMyServer(true,10);
                pingManager.pingServerIfNecessary();
                pingManager.registerPingFailedListener(new PingFailedListener() {
                    @Override
                    public void pingFailed() {
                        Log.d("Ping","pingFailed");
                        disconnect();
                        connect();
                    }
                });

            registerAllListener();
     }
}
73
задан PaulB 10 June 2009 в 16:12
поделиться

1 ответ

ЦП находится в миллисекундах. В sql server 2005 и более поздних версиях продолжительность указывается в микросекундах при сохранении в файл или таблицу и в миллисекундах в пользовательском интерфейсе. В sqlserver 2000 это всегда в миллисекундах. Из MSDN .

Пользователь jerryhung дает более точную информацию о версии в комментарии:

Начиная с SQL Server 2005, сервер сообщает продолжительность события в микросекундах (одна миллионная или 10 -6 секунды) и количество процессорного времени, использованного событием в миллисекундах (одна тысячная, или 10 -3 секунды). В SQL Server 2000 сервер сообщал как продолжительность, так и время ЦП в миллисекундах. В SQL Server 2005 и более поздних версиях графический интерфейс пользователя SQL Server Profiler по умолчанию отображает столбец Duration в миллисекундах, но когда трассировка сохраняется либо в файл, либо в таблицу базы данных, значение столбца Duration записывается в микросекундах.

89
ответ дан 24 November 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: