sql >> Database >  >> NoSQL >> MongoDB

Golang / MGO -- paniek:geen bereikbare servers

Voer de volgende versie van uw geposte code uit. Probeer de code niet te wijzigen, in ieder geval niet de positie van de regelnummers te veranderen. Op die manier komen de nummers overeen als je een stacktrace plaatst.

package main

import (
    "fmt"
    "time"
)

import (
    "labix.org/v2/mgo"
)

func connectToMongo() bool {
    ret := false
    fmt.Println("enter main - connecting to mongo")

    // tried doing this - doesn't work as intended
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Detected panic")
            var ok bool
            err, ok := r.(error)
            if !ok {
                fmt.Printf("pkg:  %v,  error: %s", r, err)
            }
        }
    }()

    maxWait := time.Duration(5 * time.Second)
    session, sessionErr := mgo.DialWithTimeout("localhost:27017", maxWait)
    if sessionErr == nil {
        session.SetMode(mgo.Monotonic, true)
        coll := session.DB("MyDB").C("MyCollection")
        if ( coll != nil ) {
            fmt.Println("Got a collection object")
            ret = true
        }
    } else { // never gets here
        fmt.Println("Unable to connect to local mongo instance!")
    }
    return ret
}

func main() {
    if ( connectToMongo() ) {
        fmt.Println("Connected")
    } else {
        fmt.Println("Not Connected")
    }
}

Als MongoDB actief is, zie ik:

enter main - connecting to mongo
Got a collection object
Connected

Wanneer MongoDB niet beschikbaar is, zie ik:

enter main - connecting to mongo
Unable to connect to local mongo instance!
Not Connected

Als je niet hetzelfde gedrag ziet, post dan de output, inclusief de paniek die je ziet.




  1. dus je HBase is kapot

  2. query in mongo Shell geeft SyntaxError:missing :after property

  3. Index laten vallen met Mongoose

  4. kan ik mongodb-query doorgeven als een string in php