Re: [XMLPipeDB-developer] getSecondPassTableManagers
Brought to you by:
kdahlquist,
zugzugglug
|
From: Richard B. <rbr...@gm...> - 2011-10-07 14:56:58
|
Thanks for the confirmation and the update. Your change is exactly what I
had done so at least we were on the same page.
I'll run another export today for review.
Richard
On Thu, Oct 6, 2011 at 11:11 PM, John David N. Dionisio <do...@lm...>wrote:
> Hi Rich,
>
> I took a look at getSecondPassTableManagers and have concluded that it will
> be sufficient to iterate through the species profiles and just keep on
> adding the table managers that they return to the overall result. If you
> look in ExportToGenMAPP.export, lines 176-179 in the current version, the
> returned array of TableManagers is simply sent directly to
> TableCoordinator.exportTables, which merely iterates through the
> TableManagers and has each do its individual export work.
>
> This change was sufficiently straightforward that I've gone ahead and made
> it, then committed it. Hope you don't mind. So, at this point, I think you
> can just do some export/data testing experiments, and we'll see what else
> needs to be fixed from there.
>
> John David N. Dionisio, PhD
> Associate Professor, Computer Science
> Associate Director, University Honors Program
> Loyola Marymount University
>
>
>
> On Oct 2, 2011, at 8:15 PM, Richard Brous wrote:
>
> > 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...>
> 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...>
> 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...>
> 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...> 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...>
> 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...>
> 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...> 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...> 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/
> >> > >> _______________________________________________
> >> > >> xmlpipedb-developer mailing list
> >> > >> xml...@li...
> >> > >> 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
> >> > _______________________________________________
> >> > xmlpipedb-developer mailing list
> >> > xml...@li...
> >> > 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
> >> _______________________________________________
> >> 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
> >
> >
> ------------------------------------------------------------------------------
> > 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
> >
> >
> > <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
> _______________________________________________
> xmlpipedb-developer mailing list
> xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
|