Tuesday, 24 February 2015

SM console update goes pear shaped

Is is just me, or does this happen every time I update SM…  It goes bad…

image

I just chose to update my SM to 9.1.5.2 and of course, when I try to login, I get the above – GREAT!

Resource not found on this server.

This is where you need to trusty old recovery commands:

How to troubleshoot an unsuccessful Management Console update?


To troubleshoot an unsuccessful Management Console update:

1. Stop the Management Console service.
2. Start the Management Console service.
3. Open a command prompt and navigate to this directory:
      \jde_home\targets\home\_staging
       where jde_home is the install path of the Management Console.
4. Invoke the redeployManagementConsoleredeployManagementConsole.cmd recovery script.

The script takes one parameter, which is the password used to initially install the Management Console.
For example: redeployManagementConsoleredeployManagementConsole.cmd password

Upon successful execution of this script you can log on to the Management Console application.

And viola:

15/02/24 21:56:25 Notification ==>Initialize ManagementConsole_WAR ends...

15/02/24 21:56:25 Notification ==>Started application : ManagementConsole

15/02/24 21:56:25 Notification ==>Binding web application(s) to site default-web
-site begins...

15/02/24 21:56:25 Notification ==>Binding ManagementConsole_WAR web-module for a
pplication ManagementConsole to site default-web-site under context root /manage


15/02/24 21:56:28 Notification ==>Initializing Servlet: com.jdedwards.mgmt.web.C
onsoleInit for web application ManagementConsole_WAR

15/02/24 21:56:38 Notification ==>Initializing Servlet: oracle.cabo.servlet.UIXS
ervlet for web application ManagementConsole_WAR

15/02/24 21:56:39 Notification ==>Binding web application(s) to site default-web
-site ends...

15/02/24 21:56:39 Notification ==>Application Deployer for ManagementConsole COM
PLETES. Operation time: 50338 msecs

 

image

We are away again…

Saturday, 21 February 2015

My changes to html4login are not coming through to the browser–weblogic cache / tmp

This is a more generic problem that changes that you are making to files in your weblogic user_project directory are not being reflected in the clients browser.  A simple change to a jsp for your EA is not being shown. 

You’ve restarted the app on a number of occasions and you are thinking that you are going mad.  Are you changing the wrong files?  What is going on.

c$\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\JDEDV_8080

Look for the directory equivilent above on your webs erver and delete the tmp and cache dirs while the WLS instance is down.  You’ll notice that the size of the tmp dir is about the same size as your EA – give or take.


Once this is done, start the application and your changes are going to be there

Thursday, 19 February 2015

Check the unicode conversions and drop tables with function:

The important parts about this script is the pragma autonomous_transaction and also the use of execute immediate for the drop table.  This functional also has an additional parameter for determining whether to drop the table or not – allowing some prudent testing.

Remember the first parameter is the singlebyte tablename and the second is the unicode_tablename.

If the third parameter is a Y, and you have permission, the table will be dropped.

Another cool feature is that this information is returned to the query (and therefore spooled).

CREATE OR REPLACE FUNCTION test_unicode_conversion (singlebyte_tablename in VARCHAR, unicode_tablename IN VARCHAR, dropTable IN CHAR)
RETURN VARCHAR
IS
unicode_count integer;
singlebyte_count integer;
unicode_cursor sys_refcursor;
singlebyte_cursor sys_refcursor;
pragma autonomous_transaction;
BEGIN
dbms_output.put_line('Starting...');
open unicode_cursor for 'select count(1) from ' || unicode_tablename ;
fetch unicode_cursor into unicode_count;
open singlebyte_cursor for 'select count(1) from ' || singlebyte_tablename ;
fetch singlebyte_cursor into singlebyte_count;
if unicode_count <> singlebyte_count then
dbms_output.put_line('cannot drop table, transation not complete');
return 'Row counts do not match for' || unicode_tablename || ' and ' || singlebyte_tablename ;
else
dbms_output.put_line('Drop the temp table, all good');
if droptable = 'Y' then
execute immediate 'drop table ' || singlebyte_tablename ;
return 'Row counts MATCH for ' || unicode_tablename || ' and DROPPED ' || singlebyte_tablename ;
end if;
return 'Row counts MATCH for' || unicode_tablename || ' and ' || singlebyte_tablename ;
end if;
close unicode_cursor;
close singlebyte_cursor;
END ;
Called with
select jde.test_unicode_conversion('TESTDTA.F4009_NONUNI', 'TESTDTA.F4009', 'N') from dual ;

Wednesday, 18 February 2015

writing and running oracle function that uses a table name as a parameter in a cursor

I need to drop tables that have been verified as unicode converted, I’m no expert at PL/SQL, so I decided to make a function that was generic.

What I decide to do is if the NONUNI = normal row count, my assumption is that everything has worked like a peach, this is going to help me do this.

Note that the drop has not been coded, because I’m a little worried…

 

CREATE OR REPLACE FUNCTION test_unicode_conversion (singlebyte_tablename in VARCHAR, unicode_tablename IN VARCHAR)
RETURN VARCHAR
IS
unicode_count integer;
singlebyte_count integer;
unicode_cursor sys_refcursor;
singlebyte_cursor sys_refcursor;
BEGIN
open unicode_cursor for 'select count(1) from ' || unicode_tablename ;
fetch unicode_cursor into unicode_count;
open singlebyte_cursor for 'select count(1) from ' || singlebyte_tablename ;
fetch singlebyte_cursor into singlebyte_count;
if unicode_count <> singlebyte_count then
dbms_output.put_line('cannot drop table, transation not complete');
return 'Row counts do not match for' || unicode_tablename || ' and ' || singlebyte_tablename ;
else
dbms_output.put_line('Drop the temp table, all good');
--drop table PRODDTA.F55B30 ;
return 'Row counts MATCH for' || unicode_tablename || ' and ' || singlebyte_tablename ;
end if;
close unicode_cursor;
close singlebyte_cursor;
END ;

select jde.test_unicode_conversion('TESTDTA.F0101', 'TESTDTA.F0101') from dual ;

 


And calling this ripper:

select jde.test_unicode_conversion('TESTDTA.F0101', 'TESTDTA.F0101') from dual ;

 


Which returns:


Row counts MATCH forTESTDTA.F0101 and TESTDTA.F0101


That is pretty cool.  Note that there are a number of specifics (syntax is a killer!)

Tuesday, 17 February 2015

9.1.5–What’s new (old for some)

Feature Title Description
Platform Product Certifications for Tools 9.1.5 This release also includes a set of platform certifications for components that can be used in conjunction with JD Edwards EnterpriseOne. By updating the tools release software the JD Edwards EnterpriseOne applications are enabled to run on these updated components: - Oracle Database 12.1.0.2, including the Database In-Memory option - Oracle Database 12.1.x on IBM AIX and HP-UX - Internet Explorer 11 in native mode, rather than in compatibility mode - IBM DB2 on IBM AIX and Microsoft Windows - IBM i 7.2 - Oracle WebLogic Server 12.1.3
One View Usability Features This feature improves the user interface for One View Reports by showing the query criteria that is used to get the report results. It also provides the ability to issue a warning if the query results exceed the number of records shown on the report when configuration options have been set that limit the number of rows displayed. In addition, the drill-back link includes a new parameter, generated by the drill-back composer. This parameter automatically executes a Find in the called application.
Introduction and Highlights Bridge release for tools.
Outbound BSSV Clustering This feature enables configuring a clustered Business Services Server instance for JD Edwards EnterpriseOne outbound web services. The clustering feature enables scalability, load balancing, and high availability for JD Edwards outbound web services by providing multiple ports to receive JDENet messages from the Enterprise Server, and the Enterprise Server can send JDENet messages to multiple clustered Business Services Server ports.
JD Edwards EnterpriseOne Mobile Enterprise Application Development Starting with EnterpriseOne Tools 9.1.5.2, JD Edwards provides additional capabilities for developing and customizing JD Edwards EnterpriseOne mobile enterprise applications which are built using JD Edwards EnterpriseOne Mobile Framework and Oracle Mobile Application Framework technologies. New capabilities include a method that enables the support of URL type media object attachments in a mobile application, and an additional form service request type that enables a mobile application to perform a query on a back-end EnterpriseOne application.
Recent Breadcrumbs It is common practice to open several applications within the same menu structure, and Breadcrumbs are a simple mechanism that enables you to keep track of the menus you have used to navigate to your current application. Breadcrumbs provide a drop-down list that represents a history of menus that you have previously accessed. This breadcrumb history provides a very simple and efficient interface to identify menus you have accessed in the past and to easily launch applications that you use repetitively through the day..
Server Only Packages This feature removes the requirement to build a client package before building server packages, and by doing so, reduces the time required to build and deploy packages to enterprise (and HTML) servers.
Email and Calendar Integration JD Edwards EnterpriseOne enables users to collaborate with other users by using the Send Email and Send Meeting Invite options.You can access this feature from the Collaborate submenu of the Tools menu item on the applications toolbar. You can send emails messages and meeting invites directly from the Collaborate tab that is part of AN8 based Hover Forms.
Management of Mobile Applications – Daily Monitoring Server Manager supports the management, tracking, monitoring, logging, and clustering of the Application Interface Services Server.
Alta Adoption JD Edwards has adopted a new style sheet called Alta for all of its interactive applications. The Alta style provides the most modern User Interface design and also provides a consistent look with JD Edwards Mobile applications along with other Oracle ERP and Cloud product offerings.
EnterpriseOne Page Gamification Support Gamification is a concept that is gaining traction in Enterprise Software. The concept is to allow companies to define games that motivate users to exhibit behaviors that benefit productivity and overall corporate profitability.
Simplified Navigation For JD Edwards EntepriseOne customers who have users that require simple and limited functionality, the Simplified Navigation option is a feature that provides new and casual users with quick access to self-service tasks, or professional users with access to quick-entry, high-volume tasks.

Monday, 16 February 2015

sqlplus with if conditional statement and server output… simple…

 

This is pretty simple, getting the script / server to return some output to the output of SQLPlus.  I saw a lot of articles on this, but non complete, i.e. – did not have the SET SERVEROUTPUT line, therefore, nothing was being printed.

I’m doing unicode conversions manually and need to drop the temp files once I’ve confirmed that all of the data rows have been converted.  Therefore I get a couple of counts (from the nonuni and singlebyte) versions of the tables.  If the counts are the same, then I drop the “_NONUNI” – simple!

This script is just for reference and does not have the drop command.

SET SERVEROUTPUT ON FORMAT WORD_WRAPPED
declare
unicode_count integer;
singlebyte_count integer;
cursor unicode_cursor is select count(1) from TESTDTA.F0101;
cursor singlebyte_cursor is select count(1) from TESTDTA.F0101_NONUNI;

begin

open unicode_cursor;
fetch unicode_cursor into unicode_count;
open singlebyte_cursor;
fetch singlebyte_cursor into singlebyte_count;
if unicode_count <> singlebyte_count then
dbms_output.put_line('cannot drop table, transation not complete');
else
dbms_output.put_line('Drop the temp table, all good');
end if;
close unicode_cursor;
close singlebyte_cursor;

end;
/
quit ;
/

Friday, 13 February 2015

tools release compatibility matrix

This is a really important table that you should all know.
JDEdwards OneWorld EnterpriseOne Application Releases
Application Release XE/ERP8 8.10 8.11 8.11 SP1 8.12 9.0 9.1
Compatible
Tools Release
SP23/24 X X X X X X
  8.93 X X X X X
  8.94 8.94 X X X X
  8.95 8.95 8.95 X X X
  8.9 8.96 8.96 8.96 X X
  8.97 8.97 8.97 8.97 X X
  8.98 8.98 8.98 8.98 8.98 X
  8.98.1 8.98.1 8.98.1 8.98.1 8.98.1 X
  X 8.98.2 8.98.2 8.98.2 8.98.2 X
  X 8.98.3 8.98.3 8.98.3 8.98.3 X
  X 8.98.4
(8.98.4.11 or earlier)
8.98.4
(8.98.4.11 or earlier)
8.98.4
(8.98.4.14 Terminal Release)
8.98.4
(8.98.4.14 Terminal Release)
X
  X X X X 9.1.0.0 9.1.0.0
  X X X X 9.1.2.0 9.1.2.0
  X X X X 9.1.3.0 9.1.3.0
  X X X X 9.1.4.0 9.1.4.0
  X X X X 9.1.5.0 9.1.5.0

Wednesday, 11 February 2015

writing JD Edwards mobile apps? STOP!

There has been a massive change in mobile app development over the last couple of tools releases. The latest modifications are fantastic.

Start your learning journey here:

https://support.oracle.com/epmos/faces/DocContentDisplay?_afrLoop=925295454654543&id=1932603.1&_afrWindowMode=0&_adf.ctrl-state=z3b4xcg6i_501

You’ll need support.oracle.com credentials.  The documentation is awesome and so are the examples.  They are making it very easy to use tested and existing application functionality in the mobile space.

http://docs.oracle.com/cd/E24705_01/doc.91/e56635/img/jde_e1_mobile_arch.gif

This is probably some sort of infringement, but it’s for the greater good.  You can see now that there is an AIS server (J2EE container) which is the gateway between the mobile device and the application data and logic via the “FormServiceRequest” method available from the native E1 web installation.  Cool!

So essentially you are turning an E1 form into a class, with standard CRUD type functionality.

http://docs.oracle.com/cd/E24705_01/doc.91/e56635/img/json_in_and_out.png

So it seems to be that this is a great way of using what has been written in JD Edwards and using your existing development skills to be able to fairly quickly enable mobile interactivity with JD Edwards.

You’ll need to skill up with JDeveloper – but that’s easy enough.  A Number of helper classes have been provided for you to assist this journey.

Of course error handling is going to be fun (it always is).  Media objects are going to be fun, but they always are aren't they?

Monday, 9 February 2015

A long story for a couple of good tips

You can probably tell from my last post (not the last post) that I’m working on making a unicode conversion go a lot faster.  There are heaps of ways of doing this, I’m lucky enough to be working on a large oracle site with EE and heaps of CPU’s.  I’m able to give the thing a good thrashing too:

So at the end of the day I need to write 2 different bits of code, 1 to convert all of the huge tables manually, and another to convert the rest of the table with the standard OWTBLCONV.  That is the name of the procedure that oracle gives you to do the conversions for you.  You can just look at this in SQLDeveloper and see what it does, it’s pretty cool.

Anyway, so I’m in unix land and I need a script that will go through all of the tables with CHAR fields and convert them.  Okay, lets get a list:

select  table_name from all_tables t1 where
exists (select 1 from all_tab_columns t2
where t2.data_type = 'CHAR'
and t1.table_name = t2.table_name
and t1.owner = t2.owner)
and t1.owner = 'PRODDTA' ;

Right, that was easy, now which are the big tables again…  Oh yeah, that’s easy:

select segment_name, sum(bytes) from dba_segments where owner = 'PRODDTA' group by segment_name order by 2 desc;

Right we are getting somewhere.  Now there are 4000 tables (approx) in proddta that need to be unicode, so I have a file in unix with 4000 lines.  I want to make my script multi-threaded, so all I do is use the most awesomely awesome command – split:


split -l 500 tables.list parallel_table


So this gives me as many files as I need, starting with “parallel_table” out of my list of tables “tables.list”.  Yes, that easy:

-rw-r--r--    1 moirs    staff          4138 Feb 09 18:42 parallel_tableaa
-rw-r--r-- 1 moirs staff 4139 Feb 09 18:42 parallel_tableab
-rw-r--r-- 1 moirs staff 4079 Feb 09 18:42 parallel_tableac
-rw-r--r-- 1 moirs staff 3688 Feb 09 18:42 parallel_tablead
-rw-r--r-- 1 moirs staff 3619 Feb 09 18:42 parallel_tableae
-rw-r--r-- 1 moirs staff 3640 Feb 09 18:42 parallel_tableaf
-rw-r--r-- 1 moirs staff 3784 Feb 09 18:42 parallel_tableag
-rw-r--r-- 1 moirs staff 3189 Feb 09 18:42 parallel_tableah

That is so Rad!


I then have a script that I call:

#!/usr/bin/ksh
#mkdir ~/uniconvlogs
if [ $# -ne 1 ]
then
echo "USAGE $0 <input file containing list of tables>"
return 1
fi
fileinput=$1
if [ ! -f $fileinput ]
then
echo "ERROR: File $1 does not exist"
return 1
fi
for filename in `cat $fileinput`
do
echo processing $filename
echo "spool /home/moirs/uniconvlogs/$filename.log" >~/uniconvlogs/$filename.sql
echo "set echo on" >> ~/uniconvlogs/$filename.sql
echo "set feedback on" >>~/uniconvlogs/$filename.sql
echo "set timing on" >>~/uniconvlogs/$filename.sql
echo "set pagesize 8000" >>~/uniconvlogs/$filename.sql
echo "set linesize 8000" >>~/uniconvlogs/$filename.sql
echo "set trimspool on" >>~/uniconvlogs/$filename.sql
echo "alter session force parallel DDL PARALLEL 8;" >>~/uniconvlogs/$filename.sql
echo "alter session force parallel DML PARALLEL 8;" >>~/uniconvlogs/$filename.sql
echo "alter session force parallel QUERY PARALLEL 8;" >>~/uniconvlogs/$filename.sql

echo "select to_char(sysdate,'HH24:MI:SS') , to_char(sysdate,'YYY MM DD') from dual;" >>~/uniconvlogs/$filename.sql
echo "Call ProdDta.OWTBLCONV('PRODDTA', 'J@ck@ss','PRODDTA','PRODDTA', '$filename',0,0);" >>~/uniconvlogs/$filename.sql
echo "spool off" >>~/uniconvlogs/$filename.sql
echo "exit" >>~/uniconvlogs/$filename.sql

sqlplus proddta/J@ck@ss@sp2jde @/home/moirs/uniconvlogs/$filename.sql

done

And a script that does the multi-threading:

#!/usr/bin/ksh
for tablelist in `ls ~/parallel_tablea*`
do
convertTables.ksh $tablelist &
done
So now I have a complete suite of rapid conversions with 6 threads.  This is blasting through the workload.
I’ve already taken out the LARGE tables that I’m doing manually, they are done with a script like:
column filename new_val filename ;
select './UnicodeConv/F0101_unicode_conversion_' || to_char(sysdate, 'yyyymmdd' ) ||'.log' filename from dual;
spool &filename

set echo on
set feedback on
set timing on
set pagesize 8000
set linesize 8000
set trimspool on
select to_char(sysdate,'HH24:MI:SS') from dual;
select to_char(sysdate,'YYY MM DD') from dual;


alter session force parallel DDL PARALLEL 8;
alter session force parallel DML PARALLEL 8;
alter session force parallel QUERY PARALLEL 8;

alter table proddta.F0101 rename to F0101_NONUNI;
alter table proddta.F0101_NONUNI drop constraint F0101_PK ;

--stupid, but still uses old name for delete.
--although an index could be called mittens, does not need to be called the table name

DROP INDEX PRODDTA.F0101_0;
DROP INDEX PRODDTA.F0101_10;
DROP INDEX PRODDTA.F0101_11;
DROP INDEX PRODDTA.F0101_12;
DROP INDEX PRODDTA.F0101_13;
DROP INDEX PRODDTA.F0101_14;
DROP INDEX PRODDTA.F0101_15;
DROP INDEX PRODDTA.F0101_16;
DROP INDEX PRODDTA.F0101_2;
DROP INDEX PRODDTA.F0101_3;
DROP INDEX PRODDTA.F0101_4;
DROP INDEX PRODDTA.F0101_5;
DROP INDEX PRODDTA.F0101_6;
DROP INDEX PRODDTA.F0101_7;
DROP INDEX PRODDTA.F0101_8;
DROP INDEX PRODDTA.F0101_9;
DROP INDEX PRODDTA.F0101_CUST_IDX01;

CREATE TABLE "PRODDTA"."F0101"
( "ABAN8" NUMBER,
"ABALKY" NCHAR(20),
"ABTAX" NCHAR(20),
"ABALPH" NCHAR(40),
"ABDC" NCHAR(40),
"ABMCU" NCHAR(12),
"ABSIC" NCHAR(10),
"ABLNGP" NCHAR(2),
"ABAT1" NCHAR(3),
"ABCM" NCHAR(2),
"ABTAXC" NCHAR(1),
"ABAT2" NCHAR(1),


 

        "ABACTIN" NCHAR(1),
"ABREVRNG" NCHAR(5),
"ABSYNCS" NUMBER,
"ABPERRS" NUMBER,
"ABCAAD" NUMBER )
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT )
TABLESPACE "PRODDTAT"
PARALLEL 8 ;

select to_char(sysdate,'HH24:MI:SS') from dual;
select to_char(sysdate,'YYY MM DD') from dual;


INSERT INTO PRODDTA.F0101 SELECT * FROM PRODDTA.F0101_NONUNI ;
commit ;

select to_char(sysdate,'HH24:MI:SS') from dual;
select to_char(sysdate,'YYY MM DD') from dual;

spool off;
quit;

Friday, 6 February 2015

JD Edwards unicode conversions faster

If you’ve got lost of data you might have got to this post.  If you are attempting to go live is some sort of second rate cloud, you might have come to this page.  Let me tell you a story and highlight things with some numbers.

Once upon a time there was a table in JD Edwards, let’s call it F03B11 that had 46 million rows.  This table took 5.5 hours to convert to unicode using the JD Edwards standard unicode conversion methodology.

A new conversion method got this down to 15 minutes, but what changed?  Everything!

Read on for the details:

The initial timings were attained during an upgrade and platform migration to the cloud.  This poor client was moving from the stability and performance of their impressively specified p-Series to their no so impressive (at first) cloud provider.

This is an oracle based system, both pSeries and going to cloud. 

I guess this turns out to be a bit of a hard core comparison of cloud vs. physical tin that you can touch and also big unix vs x86 and fibre attached SAN vs – who knows what you are getting in the cloud – 100MBs NAS?

But, you are stuck with your hardware.  You might choose where you are going to run certain items, but in general this piece if fixed.

What can you change to make the process quicker?

Perhaps something like:

  1. create table F0911_UNICODE (…. NCHAR NCHAR blah blah)
  2. drop all F0911 indexes
  3. alter table proddta.f0911 drop constraint F0911_PK;
  4. insert into proddta.f0911_UNICODE select * proddta.f0911;
  5. commit
  6. create all F0911 indexes

This is instead of using the stored procedure and function that JD Edwards calls.

I’ve seen up to 25% improvement (and more) running this manually on the large tables.

It’s easy to get the unicode definitions of the tables, just generate them against a unicode data source (control tables is handy) and then grab the details from SQLDeveloper.

image

I generally employee the above for the top 20 tables and use the standard conversions for the others.

As a side note, the data in this 46 million row F03B11 was 42.6GB single single byte mode but 71.5GB in unicode.  For this table it was 59% greater.

Thursday, 5 February 2015

The simple blog entries are sometimes the best - awk

I’m tracing through JD Edwards log files and am searching for an IP address that is having connection issues in the jdenet log files.  They are easily identifiable by grepping for my problem IP address:

>grep 10.32.8.40 * |more

jde_3680.log:   10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer
jde_3680.log:   10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer
jde_3680.log:   10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer
jde_3680.log:   10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer
jde_3680.log:   10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer
jde_3680.log:   10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer

But I need the timestamp, so I want the previous line in the log file, oh wait – we are on a totally legendary OS like unix or linux and this is massively easy:

>grep -B1 10.32.8.40 * |more

jde_11156.log-11156/11692 MAIN_THREAD                           Sun Feb 01 01:04:11.728000      NETRCV.C443
jde_11156.log:  10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer
--
jde_11156.log-11156/11692 MAIN_THREAD                           Mon Feb 02 23:00:42.996000      NETRCV.C443
jde_11156.log:  10054-Error from Host=<10.32.8.40> in recv returned 10054 (WSAECONNRESET): Connection was reset by peer

Wow, so now I can start reconciling the timestamps and the errors.  Fantastic!

-B num, --before-context=num
        Print num lines of leading context before each match.  See also the -A and -C options.

Tuesday, 3 February 2015

windows find specific files

I’m using findstr because the find window is complete rubbish, but now I have another issue.  I want to list the files I’ve “found” in explorer to copy them to another folder.  Ironically I want to zip them up and move them to my Mac so that I can sed and awk the cr@p out of them and get to the bottom of a tricky network problem at a client.

So, I have the list of files in a dos window and I paste them into EXCEL and add some “ OR “ with a basic concatenate function. (& thanks Shae) [=+A4&" OR "].  Then I past then into the explorer find window and prefix it with the ultra intuitive “system.filename:”

The exact syntax for the find multiple and specific files:

system.filename: jde_11156.log OR     jde_12268.log OR     jde_3680.log OR     jde_4296.log OR     jde_4516.log OR     jde_4596.log OR     jde_5384.log OR     jde_7776.log OR     jde_7896.log OR     jde_9220.log OR     jde_9772.log OR     jde_9980.log

So now, I have a window with all of the files that contains the text I’m searching for without crappo windows find.

image

Quickly copy and create zip and send to unix and now I can get to work.  cygwin do I hear you calling – maybe you are right.

find rage (oh yeah, I’m back)

I know I’ve said it before, but I’m going in again.

I have complete find rage with windows.

findstr /c:”10.32.8.40” finds heaps of files and heaps of instances in the jde log directory.

image

Find window, searching in file contents – finds nothing.

Don’t EVER rely on windows find to have your back.

Extending JDE to generative AI