2012-04-12 12 views
5

Sono nuovo di WebSphere MQ e sto cercando di spostare i file attraverso WebSphere MQ come messaggi utilizzando il codice C#. È possibile trasferire direttamente i file di trasferimento WebSphere MQ (ad es. * .txt)?È possibile trasferire direttamente il file di trasferimento WebSphere MQ (ad es. * .txt)?

Grazie in anticipo.

+0

Il titolo del post chiede se WMQ può trasferire file ma il corpo menziona WMQ File Transfer Edition. Non è chiaro a quale ti riferisci. Puoi chiarire? Stai cercando di scrivere codice per inserire i file nei messaggi? O stai cercando di guidare i trasferimenti FTE dal codice? –

+0

Ci scusiamo per l'ingannevole. Non ho WMQ File Transfer Edition, voglio solo scrivere il codice per inserire i file nei messaggi. Adesso uso FileStream per leggere il contenuto del file come stringa, quindi inserire la stringa nel messaggio.Qualsiasi modo migliore? Grazie! –

risposta

3

file No, base di WebSphere MQ non trasferisce direttamente. La semantica per lo spostamento di file include cose come nomi di file, percorsi di directory, conversione di nomi attraverso diversi tipi di filesystem (cioè un filetree UNIX rispetto a un Dataset partizionato z/OS). Messaging utilizza la semantica specifica per code e argomenti e questi sono drasticamente diversi da quelli per i file.

Di conseguenza, la base WMQ non tenta di eseguire la semantica dei file come parte della sua funzionalità di base. Il WebSphere MQ File Transfer Edition e IBM Sterling Connect:Direct forniscono tale funzionalità. Nel caso di FTE, il trasferimento file gestito è costruito in modo nativo su WebSphere MQ.

Molte persone hanno in passato soluzioni scritte per spostare i file utilizzando la messaggistica, che si tratti di WebSphere MQ o di un altro fornitore di servizi di trasporto. Si scopre che farlo in modo robusto è un compito non banale. Ecco alcuni dei problemi:

  • Se si effettua ogni file un singolo messaggio poi formati dei messaggi variano considerevolmente. È molto difficile mettere a punto il motore di messaggistica per eseguire simultaneamente messaggi molto grandi e molto piccoli.
  • Se si suddividono i file in blocchi, si esegue il cna tune delle dimensioni del blocco per prestazioni di messaggistica ottimali, ma ora è necessario occuparsi della conservazione delle sequenze e inviare nuovamente i messaggi mancanti.
  • Il problema generale se per aggiungere, sostituire o rinominare un file di destinazione con lo stesso nome.
  • Il problema generale di come rendere il file disponibile a destinazione in modo transazionale. Non vuoi che il destinatario prenda mezzo file.
  • integrità del file (FTE hash del file per assicurarsi che non venga cambiato in transito).

Questi sono un campionamento dei problemi per farlo in un modo generico. Tuttavia, se tutto ciò di cui hai bisogno è una soluzione one-time point-to-point, dai un'occhiata a SupportPac MA01, il programma Q. Prenderà i file e metterà una riga alla volta in un messaggio o trasformerà l'intero file in un singolo messaggio. Può anche essere usato come pipe, quindi è possibile avere due istanze di Q in cui una pipe invia messaggi a una coda e l'altra li recupera.

+0

Grazie mille!Hai menzionato il primo numero: "È molto difficile mettere a punto il motore di messaggistica per eseguire simultaneamente messaggi molto grandi e molto piccoli", cosa significa? Ridurrà le prestazioni, giusto? –

+0

Grazie per la tua risposta! Le prestazioni sono importanti per l'applicazione e devono evitare l'interruzione dei dati dal flusso nel canale. Dopo aver ricevuto i messaggi, dovremmo rilasciare la risorsa correlata, giusto? Nella mia applicazione, invoco il qmgr.Disconnect() per rilasciare la risorsa. È sufficiente? modo migliore? –

+0

Definisci "modo migliore". Un paio di agenti FTE costeranno meno di quello che spenderete cercando di estrapolare i nodi dalla vostra versione homegrown. E se prevedi di utilizzare una vasta rete di nodi che devono spostare i file, la differenza in termini di prestazioni, affidabilità e gestibilità pagherà per gli agenti. Tuttavia, se desideri ancora esplorare le opzioni di progettazione, fai una nuova domanda. SO non funziona come un forum di discussione, ma è guidato da domande e voti discreti. Una nuova domanda con i suoi tag e le sue risposte aiuterà meglio la prossima persona con un problema simile. –

3

WebSphere MQ File Transfer Edition (FTE) è un prodotto basato su WebSphere MQ per il trasferimento di file. Non è richiesta alcuna codifica per il trasferimento di file. Ci sono comandi e MQ Explorer attraverso i quali puoi configurare i tuoi trasferimenti di file. È inoltre possibile avviare i trasferimenti di file tramite script.

Leggere questo developerWorks article

+0

Ci scusiamo per l'ingannevolezza, ma non ho FTE. Forse devo scrivere il codice per trasferire il file da solo. Grazie anche a te! –

Problemi correlati