Changes for page Volume Mapping (On-premise)
Last modified by Erik Bakker on 2024/08/26 12:37
From version 40.1
edited by Erik Bakker
on 2022/10/31 09:06
on 2022/10/31 09:06
Change comment:
There is no comment for this version
To version 43.1
edited by Erik Bakker
on 2022/10/31 10:25
on 2022/10/31 10:25
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -38,48 +38,34 @@ 38 38 39 39 [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-volume-mapping-on-premise--volume-mapping-pop-up.png]] 40 40 41 -{{info}}Note that you should be in "Start editing" mode to make any changes to the configuration of your volume mapping. 41 +{{info}}Note that you should be in "Start editing" mode to make any changes to the configuration of your volume mapping.{{/info}} 42 42 43 43 === 3.1 Volume === 44 44 45 -T o makethiswork in eMagizyou needto navigate tothe Create phaseofeMagizandopentheentryflowinwhichyouwanttoarchivethe files.Withinthe contextofthisflow, weeedtoaddfunctionality that will ensurethateach inputfileisarchivedandcleanedupwhenolderhanhreedays. Todosofirstenter"Start Editing"mode onflowlevel.Thefirstdecision wehave totakeis how weare goingtoname the files withinthearchiving.The best practice,inthiscase, istheoriginal filename+ the currenttimesuffix. You candefinethisby draggingaformatfile namegenerator (supportobject)tohe canvas.45 +The first type available to you is Volume. With this option you create one or more folders on docker that is relevant for that runtime to read and/or write persistent data. To configure this type you need to link the runtime volume to a machine volume that you can create within the same pop-up. This means that you can re-use a "Machine volume" over multiple runtimes (i.e. containers). 46 46 47 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--file-name-generator.png]]47 +So, at first we open the tab called "Machine volume". By pressing the "New" button we can define a new "Machine volume". In the pop-up that follows we can define the name of a machine volume and tell whether the volume already exists on your docker installation or not. 48 48 49 - After we have done this pleaseddafileoutbound channel adapter totheflowincludingan inputchannel. Ensurethatuseroperty for thedirectory that references another directory compared to the input directory to prevent creatingn infinite loop.49 +[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-volume-mapping-on-premise--machine-volumes-configuration.png]] 50 50 51 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--archiving-config-file-outbound-basic.png]]51 +Once you have done so we press "Save" and switch back to the "Runtime volumes" tab. In here we press the "New" button to create a new "Runtime volume". In the pop-up that follows we first need to select the Type we want to use. For this example we use the type called "Volume". Based on your selection the relevant input fields will change. 52 52 53 - Now that wehave configured the basics let us turnour attention to theadvanced configuration.In theadvanced tabf this component, we need toselect thename generator to ensurethat the files are namedrrectly. Incaseyou process each line separatelyyouhaveto choose whether to save thems separate files inthe archiveor by appending themagain. Thiscan beachieved by selectingthe correctMode. Inmostcases, however, the default Mode of Replace will suffice.53 +[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-volume-mapping-on-premise--runtime-volumes-configuration-type-volume.png]] 54 54 55 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--archiving-config-file-outbound-advanced.png]]55 +The first thing we need to select is the "Machine volume". Once we have selected our "Machine volume" we need to select the Target that is specific for this runtime. This target defines the second part of the path to which the runtime will gain access. For example, when you fill in "/target" we can combine this with the "Machine volume" name to arrive at the correct directory from which eMagiz needs to read data (or write data to). So in our case this would be "/file-directory/target." 56 56 57 -The moment youaresatisfiedpress Save. Nowthat wehave configuredthisitbecomestime todeterminehowwegettheneededinputto writetoourarchive.In theexample we areusing herewewant to archive our inputfilesowe need to ensurethat thedatawereceivedis writtento thearchive as soonas possible.To do so place awiretap on thefirstchannel after retrievingthefile.This willmakesurethatthe message isarchived before processed further. The resultshouldbe somethingas shown below. Notethat thissameieceof logic couldbeapplied in otherflows withinthe eMagiz platform in a similar manner.57 +The last setting we need to configure is to define which rights we will grant our runtime on the volume we are creating. The default setting is read/write rights for the runtime which is sufficient in most cases. The result of following these steps will be the following. 58 58 59 -[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-a rchiving--archiving-result.png]]59 +[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-volume-mapping-on-premise--runtime-volumes-configuration-type-volume-filled-in.png]] 60 60 61 - ===3.2Clean up theArchive===61 +{{warning}}Note, that when you use the Volume option the external system with which you exchange data on-premise via a file based method need to be able to write or read the data from the volume (i.e. directory) you have configured in Docker. Should this be a problem the Bind mount alternative discussed below should be considered.{{/warning}} 62 62 63 - Toensure that the data is not kept indefinitely we need to clean up the archive.We do so to prevent problems with disk space but also to preventdataleaks of old data that could impact the privacyof others. Before we can setup the logic ineMagiz we needtotalk to the customer to see what an acceptable term is within which the data is kept. In most cases, this is a week or two weeks. In this example, we have chosen three days.63 +=== 3.2 Bind mount === 64 64 65 - Nowthatweknow the limit it is time to configure the components. We start withacomposite file filter(support object). Within thisfilter,we at least define how old a file must be before it can be deleted (in milliseconds). If we turn three daysinto milliseconds we get 259200000. Furthermore,we at least define that we only want to delete regular files.65 +=== 3.3 Temporary file system === 66 66 67 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--file-list-filter-for-archive-cleanup.png]]67 +=== 3.4 Named pipe === 68 68 69 -Having done so we can add a file inbound channel adapter to the canvas including an output channel. Ensure that the property reference for the directory matches the one you have used before in the outbound channel adapter. Furthermore link the filter to the component and define the poller according to the best practice. 70 - 71 -[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--file-inbound-archive-cleanup.png]] 72 - 73 -One thing we should not forget within this configuration is to set the Max messages per poll on the Advanced tab of the poller-configuration to a sufficiently high number (i.e. 50). If you forget to do so and you only check once a day it will mean that only one message will be deleted that day. 74 - 75 -[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--file-inbound-archive-cleanup-max-messages-per-poll.png]] 76 - 77 -Now eMagiz will check on a set time interval whether there are files that are older than three days that are ready for deletion. One last step to go. This last step will ensure that all files that fit the bill will be deleted from the archive. Simply add a standard service activator to the canvas and define the following SPeL expression within the component: payload.delete(). 78 - 79 -[[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-archiving--archive-cleanup-deletion.png]] 80 - 81 -This will ensure that each file that is retrieved will indeed be deleted from the archive. 82 - 83 83 == 4. Assignment == 84 84 85 85 Configure an entry in which you build the archiving and the clean up of the archiving.