Print

Print


Thanks, Alessandra.

I just made a few changes to the RunManager so it will get the URL of the db connection from the prop file.

The username, password and database name are still hard-coded and not taken from the prop file.

This resolves the JIRA item ...

https://jira.slac.stanford.edu/browse/HPSJAVA-665

I tested that setting "org.hps.conditions.connection.file" in the environment works properly for the run db.

I didn't bother implementing reading of the prop file from a resource as is possible with the conditions db (it is probably not needed for the run db).

So from now on you shouldn't need to have a hacked copy of RunManager to run offline.

If you have any questions let me know.

--Jeremy

-----Original Message-----
From: Alessandra Filippi [mailto:[log in to unmask]] 
Sent: Sunday, December 11, 2016 5:46 AM
To: Maurik Holtrop
Cc: McCormick, Jeremy I.; Omar Moreno; Uemura, Sho; hps-software
Subject: Re: problems in reading a local DB

solved!! (I believe)

I also retrieved a dump of the hps_run_db_v2 DB, and point to this in the hardcoded fix of RunManager.java (telling to get it from localhost instead of hpsdb), while the .prop file always points to local hps_conditions. Is this consistent?
I'm not sure I fully understand why it works.. but it does :-)

Let me know if you want me to add a few notes to the confluence page describing how to run successfully offline, with a local copy of the two DBs.
Thanks, cheers
     Alessandra




On Sun, 11 Dec 2016, Alessandra Filippi wrote:

> Hi Maurik, all,
> thanks, with this fix I am able to read my local db.
>
> But, er... as Sho was supposing, I am afraid I am not able to provide 
> the proper db dump. I am retrieving the hps_conditions db, is this correct?
> or do I need a different one?
> To get it, I use the command
>
>> mysqldump -f --lock-tables=false -h hpsdb.jlab.org -u hpsuser -p
> hps_conditions > hps_conditions_2016_12_11.mysql
>
> if I don't use the -f flag the dump ends almost immediately with this 
> complaint (and the dumpfile is small and clearly incomplete):
>
> mysqldump: Couldn't execute 'show create table
> `conditions_engrun2015_pass2`': SHOW VIEW command denied to user 
> [log in to unmask] for table 'conditions_engrun2015_pass2' 
> (1142)
>
> If I add the -f flag, it still complains with this and other similar 
> warnings (telling that I cannot view conditions_engrun_pass1_view and 
> svt_alignments_engrun_view), but the dump goes on and the dumpfile is 
> much larger (but this does not mean it contains everything needed, I suppose).
> When I run hps-java, after some happy queries, I get this message:
>
> Exception in thread "main" java.lang.RuntimeException: 
> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 
> 'hps_conditions.run_summaries' doesn't exist
>
> so clearly I am missing something/doing something wrong with the dump.
> Any idea?
> If it's too complicated and involving privileges I haven't, I would be 
> happy just to retrieve a recent dumpfile from somewhere, if someone 
> can provide me one copy (I have an old one, dating back to 2015, but I 
> guess it's too old - and indeed it does not work properly).
> Thanks for your help.
> cheers
>    Alessandra
>
>
>
>
>
>
>
> On Sat, 10 Dec 2016, Maurik Holtrop wrote:
>
>> Hello Alessandra,
>> You are correct in your assessment that the code does not connect to 
>> the DB. There are 2 locations in the code where the code tries to 
>> connect. In one, it does listen to the prop file, in the other the 
>> address is hard coded. In the print outs that you show, the first one 
>> … [WARNING]… is the hard coded one not getting a connection with 
>> hpsdb.jlab.org, because you are offline. In your second printout, you 
>> are online, so you don’t get any message from that, and so now it 
>> tells you that the other connection that does use the prop file 
>> indeed connected to localhost.
>> 
>> The file that causes the issue is
>> here: run-database/src/main/java/org/hps/run/database/RunManager.java
>> 
>> Here is the bit of code that I have changed to make it work on our 
>> farm
>> 
>> package org.hps.run.database;
>> 
>> import java.sql.Connection;
>> import java.sql.SQLException;
>> import java.util.List;
>> import java.util.logging.Logger;
>> 
>> import org.hps.conditions.database.ConnectionParameters;
>> import org.hps.record.daqconfig.DAQConfig;
>> import org.hps.record.epics.EpicsData; import 
>> org.hps.record.scalers.ScalerData;
>> import org.hps.record.svt.SvtConfigData; import 
>> org.hps.record.triggerbank.TriggerConfigData;
>> import org.lcsim.conditions.ConditionsEvent;
>> import org.lcsim.conditions.ConditionsListener;
>> 
>> /**
>>  * Manages access to the run database.
>>  *
>>  * @author Jeremy McCormick, SLAC
>>  */
>> public final class RunManager implements ConditionsListener {
>> 
>>     /**
>>      * The default connection parameters for read-only access to the 
>> run database.
>>      */
>>     private static ConnectionParameters DEFAULT_CONNECTION_PARAMETERS 
>> = new ConnectionParameters("hpsuser",
>>             "darkphoton", “hps_run_db", “127.0.0.1");
>> 
>>     /**
>>      * The singleton instance of the RunManager.
>>      */
>>     private static RunManager INSTANCE;
>> 
>>  
>> 
>> 
>> The 127.0.0.1 is the same as “localhost”, usually. Depending on your 
>> DB setup you may need to change the username “hpsuser” or password or 
>> database name.
>> 
>> I hope this helps.
>> 
>> Best,
>> Maurik
>> 
>> 
>>
>>       On Dec 10, 2016, at 4:18 AM, Alessandra Filippi 
>> <[log in to unmask]>
>> wrote:
>> 
>> Hi all,
>> so, I guess the issue is that I'm tying to run it completely offline 
>> (I just need to debug the recostruction on a few events, but I cannot 
>> be online as I'm away). The command I run is the
>> following:
>> 
>> java -Dorg.hps.conditions.connection.file=local.prop
>> -DdisableSvtAlignmentConstants -cp hps-distribution.jar 
>> org.hps.evio.EvioToLcio -d HPS-EngRun2015-Nominal-v5-0-fieldmap
>> -DoutputFile=test -x
>> EngineeringRun2015FullRecon_Pass2_Gbl.lcsim
>> DATA2015/hps_005772.evio.0-nominalAllevents/hps_005772.evio.0
>> 
>> where hps-distribution.jar is pointing to v3.11 hps-java .jar 
>> (freshly updated). If I run it offline, I just get
>> this:
>> 
>> 2016-12-10 09:58:08 [WARNING]
>> org.hps.conditions.database.ConnectionParameters createConnection :: 
>> Failed to connect to database jdbc:mysql://hpsdb.jlab.org:3306/ - 
>> Communications link failure
>> 
>> The last packet sent successfully to the server was 0 milliseconds 
>> ago. The driver has not received any packets from the server.
>> [..]
>> (repeated for 10 times)
>> 
>> which tells me that it doesn't care at all about my local.prop (even 
>> if I provide the name of a prop file that does not exist).
>> 
>> If I run it with the network, indeed the file is read:
>> 
>> 2016-12-10 09:52:48 [CONFIG]
>> org.hps.conditions.database.DatabaseConditionsManager
>> setConnectionProperties ::
>> setting connection properties file local.prop [...]
>> 
>> 2016-12-10 09:59:55 [INFO]
>> org.hps.conditions.database.DatabaseConditionsManager openConnection :: 
>> opening
>> connection ...
>> connection: jdbc:mysql://localhost:3306/
>> host: localhost
>> port: 3306
>> user: filippi
>> database: hps_conditions
>> 
>> so, if I understand it correctly, as a provisional shortcut I should 
>> hardcode the call to my local db overriding the search over the 
>> network of hpsdb.
>> May you tell me where?
>> thanks
>>   Alessandra
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Fri, 9 Dec 2016, McCormick, Jeremy I. wrote:
>>
>>       Alessandra, can you please send the full print output from your 
>> job and what command line you are
>>       running?
>>
>>       We should start by double checking that at least your prop file 
>> is being picked up for the conditions db
>>       before worrying about what is happening with the run db ...
>>
>>       -----Original Message-----
>>       From: Maurik Holtrop [mailto:[log in to unmask]]
>>       Sent: Friday, December 09, 2016 3:00 PM
>>       To: Omar Moreno
>>       Cc: McCormick, Jeremy I.; Uemura, Sho; Alessandra Filippi; 
>> hps-software
>>       Subject: Re: problems in reading a local DB
>>
>>       Yes, this has been an issue for quite some time, and Jeremy has 
>> been aware of it:
>>       https://jira.slac.stanford.edu/projects/HPSJAVA/issues/HPSJAVA-665?filter=allopenissues
>>       I think we should either obey the prop file everywhere, OR, 
>> hard code it everywhere and not deceive
>>       people with a prop file.
>>
>>       I have had this issue on our backend farm, which simply cannot 
>> see hpsdb.jlab.org, so I went with a
>>       local modification that hard codes the db name everywhere.
>>
>>       Perhaps Jeremy can comment on why this is hard to fix?
>> 
>> 
>>
>>       On Dec 9, 2016, at 5:21 PM, Omar Moreno <[log in to unmask]> wrote:
>>
>>       I think she is trying to run completely offline.
>> 
>>
>>       On Fri, Dec 9, 2016 at 2:07 PM, McCormick, Jeremy I. 
>> <[log in to unmask]> wrote:
>> 
>>
>>       Sho is right -- the run DB URL is currently separate from the 
>> conditions db prop file and hard-coded....
>>
>>       Are you trying to run completely offline?
>>
>>       You should be able to connect to the run db if you have an 
>> internet connection, as it is publically
>>       accessible.
>> 
>>
>>       -----Original Message-----
>>       From: [log in to unmask] 
>> [mailto:[log in to unmask]
>>       <mailto:[log in to unmask]> ] On Behalf Of Sho Uemura
>>       Sent: Friday, December 09, 2016 1:51 PM
>>       To: Alessandra Filippi
>>       Cc: hps-software
>>       Subject: Re: problems in reading a local DB
>>
>>       The instructions don't cover making a local copy of the run DB, 
>> which is a separate database also at
>>       JLab, and uses a different set of connection parameters. I 
>> think the run DB was added sometime
>>       during/after the 2015 run, so you might not have had to deal 
>> with it before.
>>
>>       On Fri, 9 Dec 2016, Alessandra Filippi wrote:
>>
>>       > Hi all,
>>       > I'm trying to use a local copy of the conditions DB to run 
>> 2015 data
>>       > reconstruction. I'm following the instructions given in
>>       >
>> https://confluence.slac.stanford.edu/display/hpsg/Installing+the+Condi
>>       <https://confluence.slac.stanford.edu/display/hpsg/Installing+the+Condi>
>>       > tions+Database+Locally
>>       >
>>       > (I remember that some time ago they were working). However, 
>> when I run
>>       > the reconstruction with the suggested command java
>>       > -Dorg.hps.conditions.connection.file=local.prop -jar
>>       > hps-distribution-bin.jar [args]
>>       >
>>       > it looks like the db redirection to my local file is ignored - the
>>       > default jlab db is always searched for, and there is no 
>> complain if I
>>       > provide a non-existent .prop filename, as if the -D 
>> instruction was neglected.
>>       > Has anything changed (class names, etc) as of lately?
>>       > or is the issue related to my local db copy?
>>       > thanks, cheers
>>       >   Alessandra
>>       >
>>       >
>> ######################################################################
>>       > ##
>>       > Use REPLY-ALL to reply to list
>>       >
>>       > To unsubscribe from the HPS-SOFTWARE list, click the 
>> following
>> link:
>>       >
>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
>>       <https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1>
>>       >
>>
>>       ########################################################################
>>       Use REPLY-ALL to reply to list
>>
>>       To unsubscribe from the HPS-SOFTWARE list, click the following link:
>>       https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
>>       
>> <https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=
>> 1>
>>
>>       ########################################################################
>>       Use REPLY-ALL to reply to list
>>
>>       To unsubscribe from the HPS-SOFTWARE list, click the following link:
>>       https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
>>       
>> <https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=
>> 1>
>> 
>> 
>> 
>>
>>       ________________________________
>>
>>       Use REPLY-ALL to reply to list
>>
>>       To unsubscribe from the HPS-SOFTWARE list, click the following link:
>>       
>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
>> 
>> 
>> 
>> 
>> 
>> 
>
> ######################################################################
> ##
> Use REPLY-ALL to reply to list
>
> To unsubscribe from the HPS-SOFTWARE list, click the following link:
> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1