Re: [XMLPipeDB-developer] getRelationshipTableManager() multispecies complete
Brought to you by:
kdahlquist,
zugzugglug
|
From: Richard B. <rbr...@gm...> - 2011-10-03 03:15:30
|
Will commit my changes to the combined else {} up into Sourceforge in a few
minutes, after this current export completes. I had to up the max log file
size to accommodate all the logging changes for multi-species export plus
tweak some log formatting.
Please take a look at my changes and confirm they make sense to accomplish
the task assigned to that code block.
Additionally, as I *'thought'* I was near done, I reviewed an exported P_a
and S_a multi-species gdb in MS Access and noticed the following oddities:
1. OrderedLocusNames: all ids are labeled one species, P_a.
I expected some to also be labeled S_a.
2. Systems: OrderedLocusNames only reference one species and provides only
one link.
I expect we need both species and both http links
3. Uniprot: All ids reference only one species name: P_a
I expected some to also reference S_a.
BUT, I'm not surprised there are issues such as the 3 mentioned, I still
need to work on the following methods which are being called during the
export:
getRelationsTableManager ()
getSystemsTableManager()
getPrimarySystemTableManager()
getSecondPassTableManager() - this one has the most impact from my
intermediate hard coding so will prioritize as #1
Thanks.
Richard
On Sat, Oct 1, 2011 at 5:35 PM, John David N. Dionisio <do...@lm...>wrote:
> Hi Rich,
>
> OK, sounds good, looks like you can get to a good trial export after this.
>
>
> John David N. Dionisio, PhD
> Associate Professor, Computer Science
> Associate Director, University Honors Program
> Loyola Marymount University
>
>
> On Oct 1, 2011, at 3:36 PM, Richard Brous <rbr...@gm...> wrote:
>
> Reread my last line and of course was reminded to proof any quickly typed,
> edited and rewritten sentences before hitting send lol
>
> OLD AND CONFUSING SENTENCE: "But that said I have my head wrapped around
> the solution and will go ahead and code it out and complete
> getRelationshipTableManager() completely transitioned."
>
>
> NEW IMPROVED SENTENCE: "But that said, I have my head wrapped around the
> solution and will go ahead and complete the changes to
> getRelationshipTableManager(). These last changes will complete the
> transition from single species to a multiple species aware method."
>
>
> rb
>
> On Sat, Oct 1, 2011 at 3:29 PM, Richard Brous < <rbr...@gm...>
> rbr...@gm...> wrote:
>
>> Wow thanks for the detailed reply and anticipating questions that might
>> follow!
>>
>> Glad my understanding of what was going on was solid even though my nested
>> "else if for" code didn't actually make semantic sense. I realized it was
>> doing as you described but wanted to keep it in that form as a vehicle to
>> clearly relay my thinking. And since my maturity to object looping, I wasn't
>> sure if there was a slick way to fool the if else loop into thinking the
>> inner for loop was boolean.
>>
>> That leads to the transition of somehow combining the my "else if for"
>> conditional and the existing else code into a combined else:
>>
>> I didn't believe I had the option of dumping the existing else block since
>> it was doing something already (which also may be referenced by other code)
>> but I should have thought about combining them in the else block. I'm
>> sitting here thinking: Duh, it should have occurred to me. =/
>>
>> But that said I have my head wrapped around the solution and will go ahead
>> and code it out and complete getRelationshipTableManager() completely
>> transitioned.
>>
>> Richard
>>
>>
>> On Sat, Oct 1, 2011 at 1:14 PM, John David N. Dionisio < <do...@lm...>
>> do...@lm...> wrote:
>>
>>> Hi Rich,
>>>
>>> First, let's phrase out in English what gets done here overall. Then,
>>> still at the conceptual level, I'll talk about what needs to be done.
>>> Finally, we'll look at what needs to change in the code. In that part, we
>>> will also look at why you're getting syntax errors in your current working
>>> version (assuming that what you included is exactly the code that you
>>> currently have). At all points, be conscious of whether what I'm writing
>>> matches your current understanding, or not. If something clears up for you,
>>> then great; if not, let me know what isn't clear.
>>>
>>> 1. What is being done
>>>
>>> The method goes through the full list of relationship tables then,
>>> depending on those tables, chooses different algorithms for producing their
>>> data.
>>>
>>> The if conditions generally categorize these tables --- GeneOntology
>>> relationships are handled one way; UniProt relationships are handled another
>>> way; relationships that use other ID systems are handled yet another way.
>>> The condition on which you're stuck involves relationships involving an ID
>>> system that is *specific* to a particular species profile. In that
>>> situation, the code essentially defers all work to the specific species
>>> profile --- which makes sense, because, as a species-specific ID system, it
>>> is fair to assume that only the species profile knows how to handle its
>>> relationships to other ID systems.
>>>
>>> 2. What needs to be done, conceptually
>>>
>>> The change you are performing involves handling multiple species
>>> profiles. In other words, for every species profile that you are exporting,
>>> you need to give each of them an opportunity to handle the export to the
>>> currently chosen relationship table. That involves first checking if the
>>> current relationship table (e.g., "Blattner-GeneID") even applies to the
>>> species profile. If the relationship table does not involve
>>> species-specific ID systems, then that species profile effectively skips
>>> that relationship table. Otherwise, it then builds up the ID pairs to be
>>> exported, via the getSpeciesSpecificRelationshipTable method.
>>>
>>> 3. What needs to be done, in code
>>>
>>> So, given this view, let's look at the code:
>>>
>>> > else if
>>> ((selectedSpeciesProfiles.get(0).getSpeciesSpecificSystemTables().containsKey(stp.systemTable1)
>>> ||
>>> >
>>> selectedSpeciesProfiles.get(0).getSpeciesSpecificSystemTables().containsKey(stp.systemTable2))
>>> &&
>>> > !stp.systemTable2.equals("GeneOntology")) {
>>>
>>>
>>> Note that, as written, this code checks *only one* species profile, and
>>> that is after all prior cases (GeneOntology, UniProt, two different ones)
>>> have already been checked. Your proposed change now is this:
>>>
>>> > else if(
>>> > for(SpeciesProfile species : selectedSpeciesProfiles) {
>>> >
>>> (species.getSpeciesSpecificSystemTables().containsKey(stp.systemTable1) ||
>>> >
>>> species.getSpeciesSpecificSystemTables().containsKey(stp.systemTable2)) &&
>>> > !stp.systemTable2.equals("GeneOntology") }
>>> > ) {
>>>
>>>
>>> You got the loop here, as described in part 2. You are indeed supposed
>>> to iterate through the selected species profiles, "ask" them if they need to
>>> do any exports with the current relationship table, then have them do so if
>>> they say "yes."
>>>
>>> Now, as to the problem with the actual code, look at how the process is
>>> phrased in English --- you *iterate first*, and *then* check if the
>>> relationship table matches. The source of your syntax error is that you are
>>> putting the for statement inside the if condition. If you step back for a
>>> moment, you'll see that this does not make semantic sense --- the if
>>> condition expects an expression that evaluates to a boolean value. The
>>> preface to a for statement is *not* such an expression --- in fact, it
>>> doesn't evaluate to anything. That is the heart of your syntax error.
>>>
>>> So, in reality, this last clause simply has to become a pure "else,"
>>> since the condition has to be applied to *every single species profile*.
>>> The for loop can then take place within, and the if check happens *inside
>>> that*, since it has to happen for each selected species profile:
>>>
>>> else {
>>> for (SpeciesProfile species: selectedSpeciesProfiles) {
>>> if
>>> ((species.getSpeciesSpecificSystemTables().containsKey(stp.systemTable1) ||
>>>
>>> species.getSpeciesSpecificSystemTables().containsKey(stp.systemTable2)) &&
>>> !"GeneOntology".equals(stp.systemTable2)) {
>>>
>>> // Have the species profile do the relationship table export.
>>>
>>> }
>>> }
>>> }
>>>
>>> That's the overall structure. Now, some housecleaning: there is already
>>> a "pure else" clause at the bottom. However, if you look at that code, it
>>> effectively does nothing: it just emits a single record with blanks for its
>>> fields. I think you can safely skip that. Or, if you really do want to
>>> make sure that an inapplicable relationship table does have at least this
>>> dummy record, you can have a boolean in the code given above that indicates
>>> whether or not the relationship table was handled:
>>>
>>> else {
>>> boolean relationshipTableWasHandled = false;
>>> /* Same for loop and if statement. */ {
>>> // This would be in the case that a species profile does
>>> perform an export.
>>> relationshipTableWasHandled = true;
>>> }
>>>
>>> if (!relationshipTableWasHandled) {
>>> // Do the single-blank-row export here.
>>> }
>>> }
>>>
>>> So, that's the run of it. Hope this walkthrough and breakdown clears up
>>> the issues.
>>>
>>> John David N. Dionisio, PhD
>>> Associate Professor, Computer Science
>>> Associate Director, University Honors Program
>>> Loyola Marymount University
>>>
>>>
>>> On Oct 1, 2011, at 11:34 AM, Richard Brous wrote:
>>>
>>> > I'm hung up on the last else if conditional within
>>> getRelationshipTableManager()
>>> >
>>> > This is the "Species-X or X-Species" conditional, excluding
>>> GeneOntology
>>> >
>>> > The original single species conditional is:
>>> >
>>> > else if
>>> ((selectedSpeciesProfiles.get(0).getSpeciesSpecificSystemTables().containsKey(stp.systemTable1)
>>> ||
>>> >
>>> selectedSpeciesProfiles.get(0).getSpeciesSpecificSystemTables().containsKey(
>>> stp.systemTable2)) &&
>>> > !stp.systemTable2.equals("GeneOntology")) {
>>> >
>>> > Now it needs to be multispecies aware obviously so...
>>> >
>>> > Can I add a for loop within the else if and change the following
>>> tablemanager creation logic , such as:
>>> >
>>> > else if(
>>> > for(SpeciesProfile species : selectedSpeciesProfiles) {
>>> >
>>> (species.getSpeciesSpecificSystemTables().containsKey(stp.systemTable1) ||
>>> >
>>> species.getSpeciesSpecificSystemTables().containsKey(stp.systemTable2)) &&
>>> > !stp.systemTable2.equals("GeneOntology") }
>>> > ) {
>>> >
>>> >
>>> > adding the for loop is wrought with syntax errors, but the real
>>> question is ... am I missing a much simpler solution to solve this?
>>> >
>>> > Richard
>>> >
>>> >
>>> > On Sun, Sep 25, 2011 at 9:20 PM, Richard Brous < <rbr...@gm...>
>>> rbr...@gm...> wrote:
>>> > Worked on the code during the past few days and have committed some
>>> changes tonight.
>>> > Also successfully exported without error.
>>> >
>>> > UniProtDatabaseProfile.java
>>> >
>>> > • clean up of some comments and old code
>>> > • cleaned up logging code for getSystemTableManager()
>>> > • Worked on getRelationshipTableManager()
>>> > • [Uniprot - X conditional]
>>> > • rewrote SQL programmatically
>>> > • used looping to create correct setStrings
>>> > • added logging to surface details
>>> > • -[X - X conditional]
>>> > • rewrite of programmatic SQL is in progress
>>> (created stringbuilder etc. in preparation)
>>> > • added logging
>>> > • -[Species - X or X - Species]
>>> > • added minimal logging to be expanded upon
>>> > DatabaseProfile.java
>>> >
>>> > • cleaned up comments
>>> > • reviewed getRelationsTableManager() and added some logging to
>>> it
>>> > ExportToGenMAPP.java
>>> >
>>> > • cleaned up code and comments for readability
>>> >
>>> >
>>> >
>>> > Appreciate any feedback as usual =D
>>> >
>>> > Richard
>>> >
>>> >
>>> > On Mon, Sep 19, 2011 at 6:22 PM, John David N. Dionisio <<do...@lm...>
>>> do...@lm...> wrote:
>>> > Very cool; looks like we can move on now. Dr. Dahlquist and I suspect
>>> that the relationship tables may not actually be as hard as they seem; just
>>> a matter of tweaking the initial queries (which you're more comfortable
>>> doing now!) so that they return the corresponding records for all of the
>>> requested species. Onward we go :)
>>> >
>>> > John David N. Dionisio, PhD
>>> > Associate Professor, Computer Science
>>> > Associate Director, University Honors Program
>>> > Loyola Marymount University
>>> >
>>> >
>>> >
>>> > On Sep 19, 2011, at 11:09 AM, Kam Dahlquist wrote:
>>> >
>>> > > Hi,
>>> > >
>>> > > LMU can accept 20 MB attachments now; I don't know how big your file
>>> is zipped, but that's an option. You could also use LionShare.
>>> > >
>>> > > Glad to see success!
>>> > >
>>> > > Kam
>>> > >
>>> > > At 06:05 PM 9/18/2011, you wrote:
>>> > >> Tried to post my latest gdb export to the biodb wiki but receiving
>>> log in error (per separate email)
>>> > >>
>>> > >> But, I wanted to let you know I verified that each improper system
>>> table does in fact contain the id and species name (samples of each):
>>> > >>
>>> > >>
>>> > >> Pfam
>>> > >> ID Species Date
>>> > >> PF02866 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> PF07050 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> PF03479 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> PF02317 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> PF03279 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> PF09922 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> PF04205 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> PF03379 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> PF05389 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >>
>>> > >>
>>> > >> RefSeq
>>> > >> ID Species Date
>>> > >> YP_039973 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> YP_040411 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> YP_039521 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> NP_253798 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> NP_254101 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> NP_248930 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> NP_251503 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> NP_249960 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> NP_253220 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> YP_040877 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> NP_253802 |Pseudomonas aeruginosa| 9/14/2011
>>> > >>
>>> > >>
>>> > >> GeneId
>>> > >> ID Species Date
>>> > >> 879140 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2859243 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> 879337 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2860668 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> 881899 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 882312 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2860009 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> 881520 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2861152 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> 881596 |Pseudomonas aeruginosa| 9/14/2011
>>> > >>
>>> > >>
>>> > >> InterPro
>>> > >> ID Species Date
>>> > >> IPR022522 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR003538 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR016379 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR016920 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR000477 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR008948 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR005415 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR009651 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> IPR007895 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR008231 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR004558 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> IPR011067 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> IPR006358 |Pseudomonas aeruginosa| 9/14/2011
>>> > >>
>>> > >>
>>> > >> PDB
>>> > >> ID Species Date
>>> > >> 2ZWS |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2F9I |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> 2EXV |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 3L34 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 1EZM |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2WYB |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2F1L |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 1D7L |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 1Y12 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 2IXH |Pseudomonas aeruginosa| 9/14/2011
>>> > >> 1XAG |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> 2IXI |Pseudomonas aeruginosa| 9/14/2011
>>> > >>
>>> > >>
>>> > >> EMBL
>>> > >> ID Species Date
>>> > >> AJ003006 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> BX571856 |Staphylococcus aureus (strain MRSA252)| 9/14/2011
>>> > >> AJ633619 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> AJ633602 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> U07359 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> X54201 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> AY899300 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> AB085582 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> AB075926 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> AF306766 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> X99471 |Pseudomonas aeruginosa| 9/14/2011
>>> > >> M21093 |Pseudomonas aeruginosa| 9/14/2011
>>> > >>
>>> > >>
>>> > >> Richard
>>> > >>
>>> > >> On Wed, Sep 14, 2011 at 6:50 PM, Richard Brous <<rbr...@gm...>
>>> rbr...@gm...> wrote:
>>> > >> OK, going to commit my changes to UniProtDatabaseProfile:
>>> getSystemTableManager()
>>> > >>
>>> > >> Here is some logging info to confirm result.next() within the while
>>> loop is both id and species name:
>>> > >>
>>> > >> 3070712 [Thread-4] INFO
>>> edu.lmu.xmlpipedb.gmbuilder.databasetoolkit.profiles.UniProtDatabaseProfile
>>> - getSystemTableManager(): while loop: ID:: IPR006314 Species::
>>> Staphylococcus aureus (strain MRSA252)
>>> > >> 3070712 [Thread-4] INFO
>>> edu.lmu.xmlpipedb.gmbuilder.databasetoolkit.profiles.UniProtDatabaseProfile
>>> - getSystemTableManager(): while loop: ID:: IPR013840 Species::
>>> Staphylococcus aureus (strain MRSA252)
>>> > >> 3070728 [Thread-4] INFO
>>> edu.lmu.xmlpipedb.gmbuilder.databasetoolkit.profiles.UniProtDatabaseProfile
>>> - getSystemTableManager(): while loop: ID:: IPR015887 Species::
>>> Pseudomonas aeruginosa
>>> > >> 3070728 [Thread-4] INFO
>>> edu.lmu.xmlpipedb.gmbuilder.databasetoolkit.profiles.UniProtDatabaseProfile
>>> - getSystemTableManager(): while loop: ID:: IPR016148 Species::
>>> Pseudomonas aeruginosa
>>> > >>
>>> > >> Richard
>>> > >>
>>> > >> On Wed, Sep 14, 2011 at 3:20 PM, Richard Brous <<rbr...@gm...>
>>> rbr...@gm...> wrote:
>>> > >> Solid progress made and I now have a compilable working copy.
>>> > >>
>>> > >> I'm now working through how to plug the results of the query into
>>> the proper slots under the while loop. I had stumbled on an error where I
>>> was supplying the column name instead of the actual data from the tuple.
>>> Solved that and am hoping the current export will be the last before I
>>> commit to sourceforge.
>>> > >>
>>> > >> Richard
>>> > >>
>>> > >>
>>> > >> On Mon, Sep 12, 2011 at 10:59 PM, Richard Brous <<rbr...@gm...>
>>> rbr...@gm...> wrote:
>>> > >> Spent the weekend reviewing sql and I have achieved some clarity.
>>> > >>
>>> > >> I'm still working through things but not at least I have better
>>> context and can ask intelligent questions.
>>> > >>
>>> > >> The sub query was a big help, I'm not sure how long it would have
>>> taken me to do all the joins using ON to return "hjid | species name"
>>> > >>
>>> > >> Dondi - I'll stop by after theory tomorrow to discuss further.
>>> > >>
>>> > >> Thanks.
>>> > >>
>>> > >> Richard
>>> > >>
>>> > >>
>>> > >> On Thu, Sep 8, 2011 at 5:24 PM, John David N. Dionisio <<do...@lm...>
>>> do...@lm...> wrote:
>>> > >> Hi Rich,
>>> > >>
>>> > >> As discussed in our meeting, here is a first step toward the new
>>> system table query:
>>> > >>
>>> > >> SELECT entrytype.hjid, organismnametype.value FROM entrytype
>>> INNER JOIN organismtype ON (entrytype.organism = organismtype.hjid) inner
>>> join organismnametype on (organismtype.hjid =
>>> organismnametype.organismtype_name_hjid) INNER JOIN dbreferencetype
>>> ON(dbreferencetype.organismtype_dbreference_hjid = organismtype.hjid) WHERE
>>> dbreferencetype.type = 'NCBI Taxonomy' and (id = '90371');
>>> > >>
>>> > >> (substitute the "id = " clause accordingly)
>>> > >>
>>> > >> John David N. Dionisio, PhD
>>> > >> Associate Professor, Computer Science
>>> > >> Associate Director, University Honors Program
>>> > >> Loyola Marymount University
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> ------------------------------------------------------------------------------
>>> > >> Why Cloud-Based Security and Archiving Make Sense
>>> > >> Osterman Research conducted this study that outlines how and why
>>> cloud
>>> > >> computing security and archiving is rapidly being adopted across the
>>> IT
>>> > >> space for its ease of implementation, lower cost, and increased
>>> > >> reliability. Learn more.
>>> <http://www.accelacomm.com/jaw/sfnl/114/51425301/>
>>> http://www.accelacomm.com/jaw/sfnl/114/51425301/
>>> > >> _______________________________________________
>>> > >> xmlpipedb-developer mailing list
>>> > >> <xml...@li...>
>>> xml...@li...
>>> > >> <https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer>
>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > > <ATT00001..txt><ATT00002..txt>
>>> >
>>> >
>>> >
>>> ------------------------------------------------------------------------------
>>> > All the data continuously generated in your IT infrastructure contains
>>> a
>>> > definitive record of customers, application performance, security
>>> > threats, fraudulent activity and more. Splunk takes this data and makes
>>> > sense of it. Business sense. IT sense. Common sense.
>>> > <http://p.sf.net/sfu/splunk-d2dcopy1>
>>> http://p.sf.net/sfu/splunk-d2dcopy1
>>> > _______________________________________________
>>> > xmlpipedb-developer mailing list
>>> > <xml...@li...>
>>> xml...@li...
>>> > <https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer>
>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>>> >
>>> >
>>> > <ATT00001..txt><ATT00002..txt>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> All of the data generated in your IT infrastructure is seriously
>>> valuable.
>>> Why? It contains a definitive record of application performance, security
>>> threats, fraudulent activity, and more. Splunk takes this data and makes
>>> sense of it. IT sense. And common sense.
>>> <http://p.sf.net/sfu/splunk-d2dcopy2>
>>> http://p.sf.net/sfu/splunk-d2dcopy2
>>> _______________________________________________
>>> xmlpipedb-developer mailing list
>>> <xml...@li...>
>>> xml...@li...
>>> <https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer>
>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>>>
>>
>>
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2dcopy2
>
> _______________________________________________
> xmlpipedb-developer mailing list
> xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
>
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2dcopy2
> _______________________________________________
> xmlpipedb-developer mailing list
> xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
>
|