[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[IDD #ADB-747400]: 20220822: Request advice on ldm setup for file transfer
- Subject: [IDD #ADB-747400]: 20220822: Request advice on ldm setup for file transfer
- Date: Tue, 23 Aug 2022 10:42:13 -0600
Hi Dave,
First, I drove your email into our inquiry tracking system so that
other Unidata staff can see the inquiry and chime-in if/when needed.
re:
> I am attempting to configure 3 standalone AWIPS instances to sync ISC
> data from each instance. I would like to use LDM to achieve this
> file transfer. What is the best way to set this configured.
>
> Below are the details coin
>
> Below is workflow snip:
>
> 1) Instance A saves an ISC file. A script on Instance A runs pqinsert
> on the file name *ISCPackage_RandomNumber.zip*
OK. Unless you specify otherwise, the feedtype that will be assigned
to the product upon product queue insertion is EXP. You can change
this with a flag to 'pqinsert' if you would rather that the product
be classified in a different feedtype.
re:
> 2) Instance A has an ALLOW for INSTANCE B AND C
Very good.
re:
> 3) Instance B has a request for ISCPackage.*
OK.
re:
> 4) Instance B pqact.conf will store the file in /tmp/ and then be acted
> on it.
OK. You didn't mention instance C...
re:
> Is ALLOW and REQUEST the most efficient way to send/receive these ISC
> files. Should I use ACCEPT?
One can send products "out of band" using 'ldmsend', but one must remember
two things before doing this:
- there needs to be an ACCEPT line in the downstream machine(s) LDM
configuration files
Remember, any time a change is made in the LDM configuration file, the
LDM on that machine will need to be stopped and restarted.
- 'ldmsend' uses LDM 5 protocols
The LDM 5 protocol is more or less the upstream machine offering the
product to the downstream, and then the downstream acknowledging that
it does, in fact, want the product, and then the upstream actually
sends the product.
The LDM 6 protocol is used when the downstream LDM makes a standing
REQUEST to be feed products (specifying the feedtype and an
extended regular expression that descibes the product/set of products);
the upstream LDM is configured to ALLOW the REQUEST; and then any time
one of the products requested is inserted into the upstream's LDM
queue, the product is sent.
The LDM 6 way of moving products is much more efficient than the LDM 5
way.
re:
> Current setup
>
> LDMD.CONF
> ##########################################################
> ## CLOUD INSTANCE ISC SETUP
> ## ALLOW ANY downstream LDM-s to request data-products from your LDM
> ## REQUEST ANY Request data-products from upstream LDM-s.
> ############################################################
> ALLOW ANY ^10.27.10.188 .*
> REQUEST ANY "ISCPackage.*" 10.27.10.188
I am assuming that this ldmd.conf snippet is on the downstream. The
only thing that would be needed on the upstream is an ALLOW that will
allow either/both B or C to REQUEST products.
re:
> PQACT.CONF
> #####################################
> #ISC Traffice instance to instance
> ######################################
> ANY (ISCPackage.*)
> FILE -log -close /tmp/\1
This looks fine.
So, what about machine C? For a really robust setup, you could
setup C to also REQUEST the products from A, and then setup both
B and C to REQUEST from each other. You will not need to worry
about the downstreams processing the same product more than once
since duplicate products should be detected and rejected by the
downstream LDMs thus preventing duplicate products from being
inserted into the queue. Identification of a duplicate products
is done by comparing a products MD5 signature with products already
in the LDM queue, and then throwing the ones away that are already
in the queue.
One thing to be on the lookout for:
If one runs 'pqinsert' outside of the LDM process group, then upstream
LDM will not notice the product has been inserted until a 30 second
timeout has occurred *when there is no other activity in the queue*.
If the machine is busy, then the product will be processed along with
the other products that have been received/inserted into the queue,
so the "artificial" 0 - 30 second will not be a factor. I can explain
this at more length/better if in a Meet if you are interested.
> Thanks
> Dave
>
Cheers,
Tom
--
****************************************************************************
Unidata User Support UCAR Unidata Program
(303) 497-8642 P.O. Box 3000
address@hidden Boulder, CO 80307
----------------------------------------------------------------------------
Unidata HomePage http://www.unidata.ucar.edu
****************************************************************************
Ticket Details
===================
Ticket ID: ADB-747400
Department: Support IDD
Priority: Normal
Status: Closed
===================
NOTE: All email exchanges with Unidata User Support are recorded in the Unidata
inquiry tracking system and then made publicly available through the web. If
you do not want to have your interactions made available in this way, you must
let us know in each email you send to us.