代码之家  ›  专栏  ›  技术社区  ›  Max Martynov

如何监控neo4j的连接问题?

  •  2
  • Max Martynov  · 技术社区  · 8 年前

    我用的是Neo4J社区版。要创建备份,我必须停止neo4j进程,进行备份并再次启动该进程。我想为服务器端的数据库连接创建一个监视程序,以便能够向用户显示数据库不可用的一些警报消息。

    我用司机 neo4j-javascript-driver 是的。

    与数据库的其他驱动程序类似,我假设neo4j具有类似的功能:

    const driver = neo4j.driver('bolt://localhost', neo4j.auth.basic('neo4j', 'neo4j'));
    const session = driver.session();
    
    session.on('disconnect', () => console.log('disconnected'));
    

    但文件里没有任何关于这个的内容。如果neo4j没有类似的东西,那么我希望使用自定义的 socket.io 连接,例如:

    const ioc = require('socket.io-client');
    
    const NEO4J_BOLT_URL = 'https://localhost:7687';
    
    const client = ioc.connect(NEO4J_BOLT_URL, {
      path: '/',
      transports: ['websocket'],
    });
    
    client.on('connect', () => console.log('connected'));
    client.on('disconnect', () => console.log('disconnected'));
    
    client.on('reconnect', () => console.log('reconnected'));
    client.on('reconnect_error', (err) => console.log('attempt to reconnect has failed', err));
    

    (不起作用)

    有人能帮我在这个驱动程序中实现类似的功能吗?我主要需要的是neo4j数据库是否存在时的回调。

    1 回复  |  直到 8 年前
        1
  •  1
  •   logisima    8 年前

    neo4j的驱动程序维护到数据库的连接池。

    当您向驱动程序请求新会话时,驱动程序将从池中建立连接(或者根据需要创建一个连接)。

    没有 connect disconnect 事件。

    唯一能做的就是在执行事务时捕捉错误并检查错误类型是否为 SERVICE_UNAVAILABLE ( https://neo4j.com/docs/api/javascript-driver/current/variable/index.html#static-variable-SERVICE_UNAVAILABLE )中。