This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

[SOLVED] Knowing if a vault is online

Former Member
Former Member

Hello,

Is there any way of knowing whether a vault is currently online or not?

I use views and it is not impossible for the user to switch his vault offline. I would prefer to detect the fact that it is offline and display an information message rather than a crash.

Is this possible?

Thanks !

-----------

VB.Net - version 4.7.2

M-Files client : 22.5.11436.3

Parents Reply Children
  • Former Member
    0 Former Member in reply to Craig Hawker

    I get all configured vaults with

    Dim client As MFilesClientApplication = New MFilesClientApplication()
    
    For Each vc As VaultConnection In client.GetVaultConnections()
        If (vc.ServerVaultGUID = guidVault) Then
            
            [...]
    
            Dim t1 = vc.IsLoggedIn()
            Dim t2 = vc.TestConnectionToVault(IntPtr.Zero)
            Exit For
        End If
    Next

    For the concerned vault, when is offline:

    • vc.IsLoggedIn() = true
    • myVault.TestConnectionToVault(IntPtr.Zero) = MFilesAPI.MFVaultConnectionTestResult.MFVaultConnectionTestResultOK

    --------

    EDIT 10h00 :

    I'm not deconnected from the network, and I can ping server.

    I just want show a message if a user has this vault offline.

  • I tested this, and it is awkward if the server is online but the vault offline.

    Can you wrap your call to BindToVault in a try/catch, and throw a suitable message to the user if it fails?

  • Former Member
    0 Former Member in reply to Craig Hawker

    .BindToVault() don't throw exception.

    Exception is throwed only when I want to get all temporary view

    vault.ViewOperations.GetViews(MFViewCategory.MFViewCategoryTemporarySearch)
    
    --> System.Runtime.InteropServices.COMException: 'This operation is not allowed in offline mode*.
    
    CoVaultViewOperations.cpp, 158, This operation is not allowed in offline mode*. (0x800407E0)
    
    * translated message from French 

  • Ahh, that's a different thing.  Let me have a look.

  • In that case I think you can use Vault.ClientOperations.IsOffline().

    To be clear: what you have here is that the client is in offline mode.  This is fundamentally different to the vault being offline on the server, although the two things are tied at a practical level.

  • Former Member
    0 Former Member in reply to Craig Hawker

    Thanks !