Hi guys,

I'm trying to work out the following problem. Let me first describe the 
scenario. I have an actor that loops over a specific set of numbers.


val someActor = system.actorOf(Props(new Actor {
    var i = 1

    def receive = {
      case x: Int =>
        log.info("Actor message is: " + x)
        processor ! x
        if (i == 15) {
          i = 1
        } else {
          i = i + 1
        }
    }
  }))

It sends another actor the number of that loop. That other actor represents 
a materialized stream.

FlowGraph.closed(source) { implicit builder =>
      roundSlot =>
        val activeTwitterProfiles: Source[Vector[domain.Source], Unit] = 
Source(PostgresChannelsRepository.activeTwitterProfiles)
        val zip = builder.add(Zip[domain.Source, Int]())

        activeTwitterProfiles.mapConcat(identity) ~> zip.in0
                                 roundSlot.outlet ~> zip.in1

In this stream I use Slick to do a query to the db which returns a 
Future[Vector[Source]]. I wrap that in a Source, get each entry separately 
on the stream and wait at the first zip input. The second zip input 
receives the loop number send by the actor.
When I start the program I get 

java.sql.SQLTimeoutException: Timeout after 1015ms of waiting for a 
connection.
        at 
com.zaxxer.hikari.pool.BaseHikariPool.getConnection(BaseHikariPool.java:228) 
~[twitter-rehydrater.jar:1.0]
        at 
com.zaxxer.hikari.pool.BaseHikariPool.getConnection(BaseHikariPool.java:183) 
~[twitter-rehydrater.jar:1.0]
        at 
com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:91) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.jdbc.HikariCPJdbcDataSource.createConnection(JdbcDataSource.scala:136) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.jdbc.JdbcBackend$BaseSession.conn$lzycompute(JdbcBackend.scala:396) 
~[twitter-rehydrater.jar:1.0]
        at slick.jdbc.JdbcBackend$BaseSession.conn(JdbcBackend.scala:396) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.jdbc.JdbcBackend$SessionDef$class.prepareStatement(JdbcBackend.scala:254) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.jdbc.JdbcBackend$BaseSession.prepareStatement(JdbcBackend.scala:388) 
~[twitter-rehydrater.jar:1.0]
        at slick.jdbc.StatementInvoker.results(StatementInvoker.scala:33) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.jdbc.StatementInvoker.iteratorTo(StatementInvoker.scala:22) 
~[twitter-rehydrater.jar:1.0]
        at slick.jdbc.Invoker$class.foreach(Invoker.scala:69) 
~[twitter-rehydrater.jar:1.0]
        at slick.jdbc.StatementInvoker.foreach(StatementInvoker.scala:16) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.jdbc.StreamingInvokerAction$class.run(StreamingInvokerAction.scala:22) 
~[twitter-rehydrater.jar:1.0]
        at slick.jdbc.SQLActionBuilder$$anon$1.run(StaticQuery.scala:199) 
~[twitter-rehydrater.jar:1.0]
        at slick.jdbc.SQLActionBuilder$$anon$1.run(StaticQuery.scala:199) 
~[twitter-rehydrater.jar:1.0]
        at 
slick.backend.DatabaseComponent$DatabaseDef$$anon$2.liftedTree1$1(DatabaseComponent.scala:231)
 
~[twitter-rehydrater.jar:1.0]
        at 
slick.backend.DatabaseComponent$DatabaseDef$$anon$2.run(DatabaseComponent.scala:231)
 
~[twitter-rehydrater.jar:1.0]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
~[na:1.8.0_60]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
~[na:1.8.0_60]
        at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]
Caused by: org.postgresql.util.PSQLException: Connection attempt timed out.
        at org.postgresql.Driver$ConnectThread.getResult(Driver.java:376) 
~[twitter-rehydrater.jar:1.0]
        at org.postgresql.Driver.connect(Driver.java:288) 
~[twitter-rehydrater.jar:1.0]
        at java.sql.DriverManager.getConnection(DriverManager.java:664) 
~[na:1.8.0_60]
        at java.sql.DriverManager.getConnection(DriverManager.java:247) 
~[na:1.8.0_60]
        at 
org.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:88) 
~[twitter-rehydrater.jar:1.0]
        at 
org.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:71) 
~[twitter-rehydrater.jar:1.0]
        at 
com.zaxxer.hikari.pool.BaseHikariPool.addConnection(BaseHikariPool.java:396) 
~[twitter-rehydrater.jar:1.0]
        at 
com.zaxxer.hikari.pool.HikariPool.lambda$addBagItem$2(HikariPool.java:75) 
~[twitter-rehydrater.jar:1.0]
        ... 3 common frames omitted


I am assuming that the Future that comes back from Slick times out while 
waiting for the actor to send the message. My question is how to overcome 
this problem?
If you need any additional info - please let me know.

Thanks in advance,
Alex

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to