IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Débugger une application qui ne répond pas par moment


Sujet :

Développement Web en Java

  1. #1
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut Débugger une application qui ne répond pas par moment
    Bonjour,

    J'ai un souci avec mon appli web.
    J'ai un serveur glassfish 4 et une base de donéées sql server express 2014.

    L'application est hébergée sur un serveur virtuel de mon entreprise.

    Tout fonctionne bien sauf que par moment (j'ai l'impression quand beaucoup de personnes se connectent simultanément), l'application est inaccessible.
    En tapant l'adresse comme d'habitude, la page de connexion ne s'affiche pas ou alors si on est déjà connecté, la page demandée ne s'affiche pas.

    J'aimerais savoir comment m'y prendre pour trouver de quoi ça pourrait venir et surtout comment trouver une solution
    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    En tapant l'adresse comme d'habitude, la page de connexion ne s'affiche pas ou alors si on est déjà connecté, la page demandée ne s'affiche pas.
    Si tu ouvres l'onglet Network (réseau) de ton navigateur (ex: raccourci Ctrl+Shift+J sous Chrome pour y accéder), quel est le code HTTP serveur retourné ?

    A+
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    Je te dis ça dès que j'ai le cas car c'est aléatoire

    merci

  4. #4
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Combien de personnes ?
    Ca ressemble à une timeout du pool de connexion au sql server, qu'est ce que tu utilises pour le gérer ?

    Montes une plateforme de test à l'identique et simule une montée en charge avec sélénium ou JMeter. Tu auras des chances de reproduire le problème, en tout cas d'isoler d'autres soucis de performances dans ton application qui pourraient se produire dans un avenir plus ou moins proche
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  5. #5
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Entre 1 et 50 personnes en simultané, mais le plus souvent entre 10 et 30 personnes. Bon ça merde pas quand y'a une seule personne....
    J'utilise BoneCP avec la config suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Default options loaded by BoneCP. Modify as per your needs. This file has
         been automatically generated. -->
     
    <!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "*<install directory>/lib/dtds/sun-resources_1_3.dtd*">
     
     
    <resources>
         <jdbc-connection-pool
              name="bonecpPool" 
              datasource-classname="com.jolbox.bonecp.BoneCPDataSource"
              transaction-isolation-level="read-committed"
              is-isolation-level-guaranteed="true"
              steady-pool-size="1"
              max-pool-size="30"
              res-type="javax.sql.DataSource"
         >
     
         <!--jdbc-connection-pool-->
             <!--Specifies the Transaction Isolation Level on the pooled       
                 database connections. Optional. Has no default. If left       
                 unspecified the pool operates with default isolation level    
                 provided by the JDBC Driver. A desired isolation level can be 
                 set using one of the standard transaction isolation levels,   
                 which see.-->
             <!--transaction-isolation-level="read-committed"-->
     
             <!--Applicable only when a particular isolation level is          
                 specified for transaction-isolation-level. The default value  
                 is true. This assures that every time a connection is         
                 obtained from the pool, it is guaranteed to have the          
                 isolation set to the desired value. This could have some      
                 performance impact on some JDBC drivers. Can be set to false  
                 by that administrator when they are certain that the          
                 application does not change the isolation level before        
                 returning the connection.-->
             <!--is-isolation-level-guaranteed="true"-->
     
             <!--minimum and initial number of connections maintained in the pool.-->
             <!--steady-pool-size="1"-->
     
             <!--maximum number of conections that can be created-->
             <!--max-pool-size="20"-->
     
             <!--To aid user in detecting potential connection leaks by the    
                 application. When a connection is not returned back to the    
                 pool by the application within the specified period, it is    
                 assumed to be a potential leak and stack trace of the caller  
                 will be logged. Default is 0, which implies there is no leak  
                 detection, by default. A positive non-zero value turns on     
                 leak detection. Note however that, this attribute only        
                 detects if there is a connection leak. The connection can be  
                 reclaimed only if connection-leak-reclaim is set to true.-->
             <!--connection-leak-timeout-in-seconds="21600"-->
     
             <!--If enabled, connection will be reusable (put back into pool)  
                 after connection-leak-timeout-in-seconds occurs. Default      
                 value is false.          -->
             <!--connection-leak-reclaim="true"-->
         <!--jdbc-connection-pool-->
     
         <!-- Sets the name of the pool for JMX and thread names. -->
         <property name="poolName" value="BoneCPPool"/>
     
         <!-- Sets the minimum number of connections that will be contained in every partition.  -->
         <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
     
         <property name="minConnectionsPerPartition" value="1"/>
     
         <!-- Sets the maximum number of connections that will be contained in every partition. 
              Setting this to 5 with 3 partitions means you will have 15 unique 
              connections to the database. Note that the connection pool will not create all 
              these connections in one go but rather start off with minConnectionsPerPartition and gradually 
              increase connections as required. -->
         <property name="maxConnectionsPerPartition" value="20"/>
     
         <!-- Sets the acquireIncrement property.  When the available connections are about to run 
              out, BoneCP will dynamically create new ones in batches. This property controls how 
              many new connections to create in one go (up to a maximum of 
              maxConnectionsPerPartition). Note: This is a per partition setting. -->
         <property name="acquireIncrement" value="2"/>
     
         <!-- Sets number of partitions to use.  In order to reduce lock contention 
              and thus improve performance, each incoming connection request picks off a connection from 
              a pool that has thread-affinity, i.e. pool[threadId % partition_count]. The higher this number, 
              the better your performance will be for the case when you have plenty 
              of short-lived threads. Beyond a certain threshold, maintenance of these pools will start 
              to have a negative effect on performance (and only for the case when 
              connections on a partition start running out).  Default: 1, minimum: 1, recommended: 
              2-4 (but very app specific) -->
         <property name="partitionCount" value="1"/>
     
         <!-- Sets the JDBC connection URL. -->
         <property name="jdbcUrl" value="jdbc:sqlserver://localhost:1433;database=MA_BASE;"/>
     
         <!-- Sets username to use for connections. -->
         <!-- <property name="username" value="(null or no default value)"/> -->
     
         <!-- Sets username to use for connections. Just delegates to setUsername for clients hardcoded 
              with "setUser" instead. -->
         <property name="user" value="xxx"/>
     
         <!-- Sets password to use for connections. -->
         <property name="password" value="xxx"/>
     
         <!-- Sets the idleConnectionTestPeriod.  This sets the time (in minutes), for a connection 
              to remain idle before sending a test query to the DB. This is 
              useful to prevent a DB from timing out connections on its end. Do 
              not use aggressive values here!   Default: 240 min, set to 0 
              to disable -->
         <property name="idleConnectionTestPeriodInMinutes" value="240"/>
     
         <!-- Sets the idleConnectionTestPeriod.  This sets the time (in seconds), for a connection 
              to remain idle before sending a test query to the DB. This is 
              useful to prevent a DB from timing out connections on its end. Do 
              not use aggressive values here!   Default: 240 min, set to 0 
              to disable -->
         <property name="idleConnectionTestPeriodInSeconds" value="14400"/>
     
         <!-- Sets Idle max age (in min).  The time (in minutes), for a 
              connection to remain unused before it is closed off. Do not use aggressive 
              values here!  Default: 60 minutes, set to 0 to disable. -->
         <property name="idleMaxAgeInMinutes" value="60"/>
     
         <!-- Sets Idle max age (in seconds).  The time (in seconds), for a 
              connection to remain unused before it is closed off. Do not use aggressive 
              values here!  Default: 60 minutes, set to 0 to disable. -->
         <property name="idleMaxAgeInSeconds" value="3600"/>
     
         <!-- Sets the connection test statement.  The query to send to the DB 
              to maintain keep-alives and test for dead connections. This is database specific and 
              should be set to a query that consumes the minimal amount of load 
              on the server. Examples: MySQL: "/* ping *\/ SELECT 1", PostgreSQL: "SELECT NOW()". 
    		  Oracle : "SELECT SYS_CONTEXT('USERENV','SID') session_id, SYS_CONTEXT('USERENV','CURRENT_USER') oracle_user, SYS_CONTEXT('USERENV','DB_NAME') db_name, SYS_CONTEXT('USERENV','OS_USER') app_os_user, SYS_CONTEXT('USERENV','HOST') app_host, SYS_CONTEXT('USERENV','IP_ADDRESS') app_os_ip_address FROM DUAL"
              If you do not set this, then BoneCP will issue a metadata request 
              instead that should work on all databases but is probably slower.  (Note: 
              In MySQL, prefixing the statement by /* ping *\/ makes the driver issue 
              1 fast packet instead. See http://blogs.sun.com/SDNChannel/entry/mysql_tips_for_java_developers ) Default: Use metadata request -->
         <property name="connectionTestStatement" value="/* ping *\/ SELECT 1"/>
       
         <!-- Sets statementsCacheSize setting.  The number of statements to cache. -->
         <property name="statementsCacheSize" value="0"/>
       
         <!-- Sets number of helper threads to create that will handle releasing a connection. 
               When this value is set to zero, the application thread is blocked 
              until the pool is able to perform all the necessary cleanup to recycle 
              the connection and make it available for another thread.  When a non-zero 
              value is set, the pool will create threads that will take care of 
              recycling a connection when it is closed (the application dumps the connection into 
              a temporary queue to be processed asychronously to the application via the release 
              helper threads).  Useful when your application is doing lots of work on 
              each connection (i.e. perform an SQL query, do lots of non-DB stuff and 
              perform another query), otherwise will probably slow things down. -->
         <property name="releaseHelperThreads" value="3"/>
       
         <!-- Sets the connection hook.  Fully qualified class name that implements the ConnectionHook 
              interface (or extends AbstractConnectionHook). BoneCP will callback the specified class according to the 
              connection state (onAcquire, onCheckIn, onCheckout, onDestroy). -->
         <!-- <property name="connectionHook" value="(null or no default value)"/> -->
       
         <!-- Specifies an initial SQL statement that is run only when a connection is 
              first created. -->
         <!-- <property name="initSQL" value="(null or no default value)"/> -->
       
         <!-- Instruct the pool to create a helper thread to watch over connection acquires 
              that are never released (or released twice). This is for debugging purposes only 
              and will create a new thread for each call to getConnection(). Enabling this 
              option will have a big negative impact on pool performance. -->
         <property name="closeConnectionWatch" value="false"/>
       
         <!-- If enabled, log SQL statements being executed. -->
         <property name="logStatementsEnabled" value="false"/>
       
         <!-- Sets the number of ms to wait before attempting to obtain a connection 
              again after a failure. -->
         <property name="acquireRetryDelayInMs" value="7000"/>
       
         <!-- Set to true to force the connection pool to obtain the initial connections 
              lazily. -->
         <property name="lazyInit" value="false"/>
       
         <!-- Set to true to enable recording of all transaction activity and replay the 
              transaction automatically in case of a connection failure. -->
         <property name="transactionRecoveryEnabled" value="false"/>
       
         <!-- After attempting to acquire a connection and failing, try to connect these many 
              times before giving up. Default 5. -->
         <property name="acquireRetryAttempts" value="5"/>
       
         <!-- Sets the connection hook class name. Consider using setConnectionHook() instead. -->
         <!-- <property name="connectionHookClassName" value="(null or no default value)"/> -->
       
         <!-- Set to true to disable JMX. -->
         <property name="disableJMX" value="false"/>
       
         <!-- If set, use datasourceBean.getConnection() to obtain a new connection instead of Driver.getConnection(). -->
         <!-- <property name="datasourceBean" value="(null or no default value)"/> -->
       
         <!-- Queries taking longer than this limit to execute are logged. -->
         <property name="queryExecuteTimeLimitInMs" value="0"/>
       
         <!-- Sets the Pool Watch thread threshold.  The pool watch thread attempts to 
              maintain a number of connections always available (between minConnections and maxConnections). This value 
              sets the percentage value to maintain. For example, setting it to 20 means 
              that if the following condition holds: Free Connections / MaxConnections < poolAvailabilityThreshold  
              new connections will be created. In other words, it tries to keep at 
              least 20% of the pool full of connections. Setting the value to zero 
              will make the pool create new connections when it needs them but it 
              also means your application may have to wait for new connections to be 
              obtained at times.  Default: 20. -->
         <property name="poolAvailabilityThreshold" value="20"/>
       
         <!-- If set to true, the pool will not monitor connections for proper closure. 
              Enable this option if you only ever obtain your connections via a mechanism 
              that is guaranteed to release the connection back to the pool (eg Spring's 
              jdbcTemplate, some kind of transaction manager, etc). -->
         <property name="disableConnectionTracking" value="false"/>
       
         <!-- Sets the maximum time (in milliseconds) to wait before a call to getConnection 
              is timed out.  Setting this to zero is similar to setting it 
              to Long.MAX_VALUE  Default: 0 ( = wait forever ) -->
         <property name="connectionTimeoutInMs" value="0"/>
       
         <!-- Sets the no of ms to wait when close connection watch threads are 
              enabled. 0 = wait forever. -->
         <property name="closeConnectionWatchTimeoutInMs" value="0"/>
       
         <!-- Sets number of statement helper threads to create that will handle releasing a 
              statement.  When this value is set to zero, the application thread is 
              blocked until the pool and JDBC driver are able to close off the 
              statement.  When a non-zero value is set, the pool will create threads 
              that will take care of closing off the statement asychronously to the application 
              via the release helper threads).  Useful when your application is opening up 
              lots of statements otherwise will probably slow things down. -->
         <property name="statementReleaseHelperThreads" value="0"/>
       
         <!-- Sets the maxConnectionAge in seconds. Any connections older than this setting will be 
              closed off whether it is idle or not. Connections currently in use will 
              not be affected until they are returned to the pool. -->
         <property name="maxConnectionAgeInSeconds" value="0"/>
       
         <!-- Sets the configFile. If configured, this will cause the pool to initialise using 
              the config file in the same way as if calling new BoneCPConfig(filename). -->
         <!-- <property name="configFile" value="(null or no default value)"/> -->
       
         <!-- Sets the queue serviceOrder. Values currently understood are FIFO and LIFO. -->
         <!-- <property name="serviceOrder" value="(null or no default value)"/> -->
       
         <!-- If set to true, keep track of some more statistics for exposure via 
              JMX. Will slow down the pool operation. -->
         <property name="statisticsEnabled" value="false"/>
       
         <!-- Sets the defaultAutoCommit setting for newly created connections. If not set, use driver 
              default. -->
         <!-- <property name="defaultAutoCommit" value="(null or no default value)"/> -->
       
         <!-- Sets the defaultReadOnly setting for newly created connections. If not set, use driver 
              default. -->
         <!-- <property name="defaultReadOnly" value="(null or no default value)"/> -->
       
         <!-- Sets the defaultCatalog setting for newly created connections. If not set, use driver 
              default. -->
         <!-- <property name="defaultCatalog" value="(null or no default value)"/> -->
       
         <!-- Sets the defaultTransactionIsolation. Should be set to one of: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ 
              or SERIALIZABLE. If not set, will use driver default. -->
         <!-- <property name="defaultTransactionIsolation" value="(null or no default value)"/> -->
       
         <!-- If set to true, no attempts at passing in a username/password will be 
              attempted when trying to obtain a raw (driver) connection. Useful for cases when 
              you already have another mechanism on authentication eg NTLM. -->
         <property name="externalAuth" value="false"/>
       
         <!-- Sets the classloader to use to load JDBC driver and hooks (set to 
              null to use default). -->
         <!-- <property name="classLoader" value="(null or no default value)"/> -->
       
         <!-- If set to true, try to unregister the JDBC driver when pool is 
              shutdown. -->
         <property name="deregisterDriverOnClose" value="false"/>
       
         <!-- Sets the nullOnConnectionTimeout.  If true, return null on connection timeout rather than 
              throw an exception. This performs better but must be handled differently in your 
              application. This only makes sense when using the connectionTimeout config option. -->
         <!-- <property name="nullOnConnectionTimeout" value="(null or no default value)"/> -->
    </jdbc-connection-pool>
    <jdbc-resource 
         enabled="true" 
         jndi-name="jdbc/bonecp_resource" 
         object-type="user" 
         pool-name="bonecpPool"/>
    </resources>
    Merci

  6. #6
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Que donnes le résultats des requêtes suivantes :
    Nombre maximum de connections :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select @@max_Connections
    Connections en cours: T'es tu connecté en JMX (via jvisualvm fournit avec le jdk) sur ton serveur pour vérifier que la mémoire n'était pas saturée ou le nombre threads excessifs : http://lifeandshell.com/glassfish-mo...with-visualvm/
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  7. #7
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    select @@max_Connections
    32767
    exec sp_who
    db.xlsx

    Non je n'ai pas pu me connecter en jmx. J'avais essayé avec jconsole mais impossible de se connecter, alors que quand il n'y a pas de blocage, je peux via jconsole

    Merci

  8. #8
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Donc le serveur de BDD n'est pas en cause, ni le pool de connexion si tu fermes convenablement tes connexions (je vois qu'il est configuré pour en maintenir 30)
    Essayes de passer le max-pool-size à 120 voir si cela corrige temporairement le problème.

    Est-ce que ton SQL server redémarre parfois (BoneCP a la réputation de ne pas aimer cela)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEADD(ms,-sample_ms,GETDATE() )AS StartTime FROM sys.dm_io_virtual_file_stats(1,1);
    Jconsole ou JvisualVM, c'est pour savoir si tu n'est pas à bout de mémoire ou autre, sachant que le second peut collecter le nombre d'occurence d'objects
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  9. #9
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Comment tu sais que le serveur dB n est pas en cause ?

    Les connexions sont gérées automatiquement, enfin je crois Comment je peux contrôler pour être sur ?

    En principe le serveur sql ne redémarre pas sans que la machine physique ne redemarre

  10. #10
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Citation Envoyé par doons Voir le message
    Comment tu sais que le serveur dB n est pas en cause ?

    Les connexions sont gérées automatiquement, enfin je crois Comment je peux contrôler pour être sur ?

    En principe le serveur sql ne redémarre pas sans que la machine physique ne redemarre
    Parce qu'il y a a beaucoup mois de connexions physiques (7 pour le compte MY_ERP, selon la commande sp_who) que de le maximum autorisé (32767).
    Quelle est la fréquence de plantage ?
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  11. #11
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Ok

    En début de semaine, c était 4-5 par jour, aujourd hui 1x mais y avait plus de monde de connecté en début de semaine.

    Pour vérifier la fermeture des connexions, je peux faire ça comment?

  12. #12
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Donc ca dépend de la charge... et ne se résout qu'en redémarrant le serveur ?

    Quelle version d'OS, de Glashfish, de Java ?
    Quand ton application est plantée, est-ce le module d'administration de glassfish tourne toujours ?

    As tu regardé les logs <répertoire glassfish>domains\<ton domaine>\logs ?
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  13. #13
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Je n'ai pas vraiment eu l'occasion de laisser bloqué longtemps, donc oui, c'est résolu en rémarrant le serveur car je ne peux pas redémarrer le service windows qui lance le serveur glassfish (message comme quoi windows n'a pas pu le redémarrer).
    Mais il me semble qu'une fois c'était bloqué (un utilisateur m'a dit) et quand je suis allé dessus il n'est pas (plus) bloqué donc c'est possible qu'il se débloque tout seul.

    C'est windows server 2008 R2 std (changé d'ici le permier semestre 2017), glassfish 4, java 1.8.060

    Je n'ai pas regardé si la console était bloquée, je le ferai la prochaine fois.

    Dans les logs, il n'y a rien de spéciale sauf que j'ai eu une fois une java heap space mais je n'ai pas pu déterminer si c'était pendant un blocage ou non car je l'ai vue après coup

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Pourquoi ne pas activer le monitoring de glassfish ou ajouter un api tiers pour ça afin que tu puisses diagnostiquer facilement ton problème?

    A+.

  15. #15
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    J'ai activé le monitoring de glassfish et également plumbr pour voir ce que je peux trouver

Discussions similaires

  1. Par où passe une application qui quitte ?
    Par barbudor dans le forum Framework .NET
    Réponses: 10
    Dernier message: 07/05/2011, 20h16
  2. Création d'une application qui s'ouvre par défaut
    Par vlksoft dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/03/2010, 10h42
  3. [Debug] Comment débugger une application java qui tourne
    Par GyZmoO dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/03/2008, 08h56
  4. Ouvrir une BD qui est protegé par un mot de passe?
    Par issam16 dans le forum Sécurité
    Réponses: 1
    Dernier message: 18/07/2006, 18h15
  5. [VB.NET] Programmer une Application qui tourne sur un PDA?
    Par Bils dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/01/2006, 04h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo