| Author | Message | 
		
		  | saddankula | 
			  
				|  Posted: Fri Aug 19, 2016 5:01 am    Post subject: Howto Rename Filename after creation of file thru FileOutput |   |  | 
		
		  | Acolyte
 
 
 Joined: 27 Jun 2013Posts: 51
 
 
 | 
			  
				| Hi All, 
 I need  your suggestion for changing the file name after creation of file Through File Output node.
 
 Scenario: Through File Output node I created file with "Localdata.xml" and I appended the records into that file   . After appending I need to change file name as " Localdata_Date.xml ".
 
 Could any one pls provide suggestion how to rename the file name.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Fri Aug 19, 2016 5:08 am    Post subject: Re: Howto Rename Filename after creation of file thru FileOu |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| saddankula wrote: |  
	| Could any one pls provide suggestion how to rename the file name. |  
 And you didn't create the file with the right name in the first place because.....?
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | saddankula | 
			  
				|  Posted: Fri Aug 19, 2016 5:18 am    Post subject: |   |  | 
		
		  | Acolyte
 
 
 Joined: 27 Jun 2013Posts: 51
 
 
 | 
			  
				| is it possible to rename the file name   in Esql coding ? |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Fri Aug 19, 2016 5:31 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| saddankula wrote: |  
	| is it possible to rename the file name   in Esql coding ? |  
 Yes, as described in the InfoCenter.
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | paustin_ours | 
			  
				|  Posted: Mon Aug 22, 2016 4:47 am    Post subject: |   |  | 
		
		  | Yatiri
 
 
 Joined: 19 May 2004Posts: 667
 Location: columbus,oh
 
 | 
			  
				| 
   
	| Quote: |  
	| And you didn't create the file with the right name in the first place because.....?
 |  
 this is a valid request, many a times you want to write a file with a .temp at the end or a .x and then rename it after the file is completely written.
 
 this helps in scenarios where you want to make sure no application accidentally consumes a partially written file.
 
 we always ask applications that write files to our file input directory to write with a temporary name and then rename to actual names.
 
 i dont think fileoutput node allows such a feature, does it?
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | mqjeff | 
			  
				|  Posted: Mon Aug 22, 2016 5:12 am    Post subject: |   |  | 
		
		  | Grand Master
 
 
 Joined: 25 Jun 2008Posts: 17447
 
 
 | 
			  
				| 
   
	| paustin_ours wrote: |  
	| 
   
	| Quote: |  
	| And you didn't create the file with the right name in the first place because.....?
 |  
 this is a valid request, many a times you want to write a file with a .temp at the end or a .x and then rename it after the file is completely written.
 
 this helps in scenarios where you want to make sure no application accidentally consumes a partially written file.
 
 we always ask applications that write files to our file input directory to write with a temporary name and then rename to actual names.
 
 i dont think fileoutput node allows such a feature, does it?
 |  
 FileOutput node doesn't offer such a feature.
 
 Because it handles it automatically for you.
 
 But the problem you describe is exactly why you shouldn't use files to transfer data.
 _________________
 chmod  -R ugo-wx /
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Mon Aug 22, 2016 6:32 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| paustin_ours wrote: |  
	| this is a valid request, many a times you want to write a file with a .temp at the end or a .x and then rename it after the file is completely written. 
 this helps in scenarios where you want to make sure no application accidentally consumes a partially written file.
 |  
 No it's not a valid request.
 
 To prevent an application accidentally consuming a partially completed file the FileOutput node, by default, stages the file in the mqsitransit directory and only moves it to the output directory when the file is signaled to be complete by a message arriving on the FinishFile terminal of the FileOutput node.
 
 I understand that in other systems (e.g. Java ) it's a perfectly acceptable paradigm to rename files as you describe. It's the alternative to a staging directory.
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | mqjeff | 
			  
				|  Posted: Mon Aug 22, 2016 6:34 am    Post subject: |   |  | 
		
		  | Grand Master
 
 
 Joined: 25 Jun 2008Posts: 17447
 
 
 | 
			  
				| 
   
	| Vitor wrote: |  
	| I understand that in other systems (e.g. Java ) it's a perfectly acceptable paradigm to rename files as you describe. It's the alternative to a staging directory. |  
 Either method still says "I shouldn't be using files to transfer data", because either method says "I have to muck about with fixing things that I shouldn't have to fix".  You wouldn't expect to post data to a temporary URL and then send another HTTP request to move the data to a new URL, would you?
 _________________
 chmod  -R ugo-wx /
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Mon Aug 22, 2016 6:50 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| mqjeff wrote: |  
	| 
   
	| Vitor wrote: |  
	| I understand that in other systems (e.g. Java ) it's a perfectly acceptable paradigm to rename files as you describe. It's the alternative to a staging directory. |  
 Either method still says "I shouldn't be using files to transfer data", because either method says "I have to muck about with fixing things that I shouldn't have to fix".  You wouldn't expect to post data to a temporary URL and then send another HTTP request to move the data to a new URL, would you?
 |  
 
   
 But it's an imperfect universe, and files are like COBOL. People have been predicting the death of both for years but no-one's actually come up with the appropriate wooden stake / silver bullet
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | adubya | 
			  
				|  Posted: Mon Aug 22, 2016 11:49 am    Post subject: |   |  | 
		
		  | Partisan
 
 
 Joined: 25 Aug 2011Posts: 377
 Location: GU12, UK
 
 | 
			  
				| 
   
	| saddankula wrote: |  
	| is it possible to rename the file name   in Esql coding ? |  
 Sort answer is no.  But you could write a Java class which did the rename and call this from ESQL if you reallly want to do this.
 _________________
 Independent Middleware Consultant
 andy@knownentity.com
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | smdavies99 | 
			  
				|  Posted: Mon Aug 22, 2016 12:14 pm    Post subject: |   |  | 
		
		  |  Jedi Council
 
 
 Joined: 10 Feb 2003Posts: 6076
 Location: Somewhere over the Rainbow this side of Never-never land.
 
 | 
			  
				| 
   
	| adubya wrote: |  
	| 
   
	| saddankula wrote: |  
	| is it possible to rename the file name   in Esql coding ? |  
 Sort answer is no.  But you could write a Java class which did the rename and call this from ESQL if you reallly want to do this.
 |  
 And doing so could get yourself into a whole heap of trouble unless you understand the details of the underlying filesystems locking system.
 
 As has been saidm for local files this renaming is done for you under the covers.
 _________________
 WMQ User since 1999
 MQSI/WBI/WMB/'Thingy' User since 2002
 Linux user since 1995
 
 Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | adubya | 
			  
				|  Posted: Mon Aug 22, 2016 12:20 pm    Post subject: |   |  | 
		
		  | Partisan
 
 
 Joined: 25 Aug 2011Posts: 377
 Location: GU12, UK
 
 | 
			  
				| 
   
	| smdavies99 wrote: |  
	| 
   
	| adubya wrote: |  
	| 
   
	| saddankula wrote: |  
	| is it possible to rename the file name   in Esql coding ? |  
 Sort answer is no.  But you could write a Java class which did the rename and call this from ESQL if you reallly want to do this.
 |  
 And doing so could get yourself into a whole heap of trouble unless you understand the details of the underlying filesystems locking system.
 
 As has been saidm for local files this renaming is done for you under the covers.
 |  
 If you stage the output file in mqsitransit and then once the file output node has done it's thing and moved the file to the output dir  then the file is unlocked and available for pilfering isn't it ?
  _________________
 Independent Middleware Consultant
 andy@knownentity.com
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Mon Aug 22, 2016 12:28 pm    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| adubya wrote: |  
	| If you stage the output file in mqsitransit and then once the file output node has done it's thing and moved the file to the output dir  then the file is unlocked and available for pilfering isn't it ?  |  
 And you've created an entirely unnecessary Java component that you then need to maintain for no reason at all.
 
 There are 2 ways to handle the incomplete file problem: stage it in a different directory or name it a temporary name then rename it when you're finished. If you stage the file in the mqsitransit directory then there's no need to rename it for that purpose, only because you've used the wrong name & you can avoid that with the method I laid out rather than a piece of Java.
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | paustin_ours | 
			  
				|  Posted: Mon Aug 22, 2016 5:56 pm    Post subject: |   |  | 
		
		  | Yatiri
 
 
 Joined: 19 May 2004Posts: 667
 Location: columbus,oh
 
 | 
			  
				| 
   
	| Quote: |  
	| And doing so could get yourself into a whole heap of trouble unless you understand the details of the underlying filesystems locking system. |  
 we do this a whole lot in our code.
 
 we call perl from java from esql
 
 we call c from java from esql
 
 IBM has looked our code many many times and never raised concern even once. Actually we have been encouraged and told that other customers do the same.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | mqjeff | 
			  
				|  Posted: Tue Aug 23, 2016 3:48 am    Post subject: |   |  | 
		
		  | Grand Master
 
 
 Joined: 25 Jun 2008Posts: 17447
 
 
 | 
			  
				| Which "IBM"? 
 Broker L2 support? The PMR process will only complain about your code if it is shown to be the problem behind the PMR.
 
 A team of GBS consultants?  They're not paid to approve your code,  they're paid to do whatever their contract says.
 
 A Software services consultant?  They will tell you that this is not a recommended approach for dealing with files, but if you complain that "we do it all the time and it works fine", then almost certainly they won't push the issue.
 
 Calling Perl and C and etc. from ESQL is fine and dandy.  Unless it's doing things that are already handled directly by a Broker built-in node.  Then it's a waste of time and coding.  So, not a recommended practice... (at least by me).
 
 Again, when it comes to exchanging data using files, the FileOutput node will handle everything you need to protect the file from being processed before it's complete.  So writing your own code to do it is, as I said, a waste of time and code.
 
 And in general, exchanging data using files is a practice that has not been a good idea since anything else was available - roughly around the time of the invention and availability of HTTP servers.  Which was, what? 1992?
 _________________
 chmod  -R ugo-wx /
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  |  |