Need your help: generate report
I have following 3 SQL scripts, they run separately as below:
SQL 1:
SELECT AREA_CODE,MAX(MODIFICATION_DTM) AS LATEST_DTM FROM RTP GROUP BY AREA_CODE;
DESC RTP;
Name Null Type
ID NOT NULL NUMBER(10)
AREA_CODE VARCHAR2(8)
MODIFICATION_DTM DATE
CUSTOM_1 VARCHAR2(300)
CUSTOM_2 VARCHAR2(300)
CUSTOM_3 VARCHAR2(300)
output:
AREA_CODE LATEST_DTM
ERLI 16-SEP-11
TORCE 20-OCT-11
RESIN 16-SEP-11
RES5 10-SEP-10
DYN 11-SEP-11
LOS 16-OCT-11
SQL 2:
SELECT AREA_CODE,MAX(MODIFICATION_DTM) as LATEST_DTM FROM LOG WHERE LOG_DESC = 'RUN' GROUP BY AREA_CODE ;
DESC LOG;
Name Null Type
LOG_ID NOT NULL NUMBER(10)
AREA_CODE VARCHAR2(8)
LOG_DESC VARCHAR2(256)
CREATION_DTM DATE
MODIFICATION_DTM DATE
USER_ID VARCHAR2(20)
output:
AREA_CODE LATEST_DTM
ERLI 13-JUN-11
TORCE 10-MAY-11
RESIN 10-DEC-11
RES5 10-FEB-11
SFO 11-SEP-11
DAS 06-AUG-11
SQL 3:
SELECT AREA_CODE,MAX(MODIFICATION_DTM) as LATEST_DTM FROM LOG WHERE LOG_DESC = 'OPERATION' GROUP BY AREA_CODE ;
DESC LOG;
Name Null Type
LOG_ID NOT NULL NUMBER(10)
AREA_CODE VARCHAR2(8)
LOG_DESC VARCHAR2(256)
CREATION_DTM DATE
MODIFICATION_DTM DATE
USER_ID VARCHAR2(20)
output:
AREA_CODE LATEST_DTM
ERLI 13-JUN-11
MDSP 10-NOV-11
STP2 18-OCT-11
YOSH 06-OCT-10
ANKUR 17-OCT-11
5025W 31-AUG-11
DAS 06-AUG-11
...I want to generate an output as below:
AREA_CODE LATEST_DTM LAST_RUN LAST_OPERATION
ERLI 16-SEP-11 13-JUN-11 13-JUN-11
YOSH 06-OCT-10 07-AUG-11 14-NOV-09
...I have never generated this kind of report before, can anyone please help me on this one?
Thanks....
Edited by: user644467 on Aug 17, 2012 9:31 AM
Although it could be done as a join of two subqueries, I would probably do it as union query to avoid the complications if not all area_code values are in both tables. Something like:
select area_code, max(latest_dtm) latest_dtm, max(last_run) last_run,
max(last_operation) last_operation
from (select area_code, modification_dtm latest_dtm,
to_date(null) last_run, to_date(null) last_operation
from rtp
union all
select area_code,
case when log_desc = 'RUN' then modification_dtm end last_run,
case when log_desc = 'OPERATION' then modification_dtm end last_operation
from log
where log_desc in ('RUN', 'OPERATION'))
group by area_codeIf you know that no area_code value can appear in log without also appearing in rtp, then a join version would be something like:
select area_code, latest_dtm, last_run, last_operation
from (select area_code, max(modification_dtm) latest_dtm,
from rtp
group by area_code) rtp
left join (select area_code,
max(case when log_desc = 'RUN'
then modification_dtm end) last_run,
max(case when log_desc = 'OPERATION'
then modification_dtm end) last_operation
from log
where log_desc in ('RUN', 'OPERATION')
group by area_code) log
on rtp.area_code = log.area_codeIf you also know that all area_code values in rtp also appear at least once in log for one of run or ooperation, then you can lose the left join and just do an equi-join. However, I'm not sure that there would be much difference in perfromance between the two versions.
John
Similar Messages
-
Letter/report generation...morgalr, i need your help!!
may i know the details or some sample source code of how to generate the html and import it to MS Word...i need your help urgently...may i have your email to contact u?.....please help, it is urgent!!!
You need not use an applet to write an HTML file, any application file will do fine, actually applications may be prefered due to system security and file creation. Basically the html files are just text files using HTML. Look at any book on HTML and you will be able to get the style and form down along with the syntax.
As for calling MS word, do a search on the web for a product called JPrint. It is done by a company called Neva and they also have a product called "coroutine". It is coroutine that you want. Coroutine is a native level interface for Java to Comm. The docs that come with coroutine should be saficient to get you going on the project. -
Hello
I need your help ^^*
Windows 2000 Server
Resin 2.0.1
jdk 1.3.1
connect to Oracle 9.2.x using jdbc driver : classes12.jar <-- it is from oracle9i
When I excute a query(rs = pstmt.executeQuery()) I got a error message from
oracle9i
--> java.sql.SQLException: ORA-00600: internal error code, arguments: [ttcgcshnd-
1], [0], [], [], [], [], [], []
This problem is not happed at Oracle8i(8.1.6) <-- I think a code is not problem.
When I tested the code(same code) at another server ( Windows 2000 Server,Resin
2.0.5 ,jdk 1.4.0,j2ee 1.3,connect to Oracle 9.2.x,jdbc driver : classes12.jar ),
the error message is not happened.
I'd like to know that it is jdk or resin version's problem or not And how can I
solve the problem.
Have a nice day ^^*Oracle documentation read:
ORA-00600 internal error code, arguments: [string], [string], [string], [string], [string], [string], [string], [string]
Cause: This is the generic internal error number for Oracle program exceptions. It indicates that a process has encountered a low-level, unexpected condition. Causes of this message include:
timeouts
file corruption
failed data checks in memory
hardware, memory, or I/O errors
incorrectly restored files
The first argument is the internal message number. Other arguments are various numbers, names, and character strings. The numbers may change meanings between different versions of Oracle.
Action: Report this error to Oracle Customer Support after gathering the following information:
events that led up to the error
the operations that were attempted that led to the error
the conditions of the operating system and databases at the time of the error
any unusual circumstances that occurred before receiving the ORA-00600 message
contents of any trace files generated by the error
the relevant portions of the Alter files
Note: The cause of this message may manifest itself as different errors at different times. Be aware of the history of errors that occurred before this internal error. Paul -
I do not know how to avtivate sap early watch,need your help.thanks.
I have finished the installation of solution manager3.2 .Now ,I do not know how to activate early watch,I have learned the relevant notes in sap website,but I still do not know the details about how to activate early watch.who can help me? Do you have references about activating early watch or install guide. I really need your help,I am waiting your answer,and thanks.
my MSN:[email protected] my skype:Day_77Hi,
Kindly note the sequence of steps to be done for EWA generation.
1. Setup of the Server, database and system in transaction SMSY.
2. Generating the RFC's for the System and ensuring that the trusted
RFC works.
3. Adding the system to a logical component and assigning the logical
component to a Solution Landscape created in DSWP.
3. Setting up of EWA from the Solution Settings from the operations
setup in DSWP.
4. Configuring the SDCC / SDCCN on the satellite system (see note Note 763561 ) and adding the Solution Manager RFC to the SDCC settings.
5. Refreshing of sessions via the SDCCN transaction on the Satellite
system. This can be automated via the Auto session Manager Report.
6. Processing of the session and sending the collected data to Solution
manager.
7. Processing the collected data in the Solution Manager System and
generating the EWA Report.
if helpful reward points are appreciated -
Need your help on performance issue please
Hello everyone!
I need your help to understand an effect I notice with a Thread class I built. I currently work on enhancement of my application Playlist Editor (see http://www.lightdev.com/page74.htm) and a new release will be available soon.
Among other extensions the new release will have a title filter function which is based on audio data that is recursively read from ID3 tags of files found in a given root directory. The data collection is done by a CollectionThread class which reads into a data model class AudioDataModel and the entire process works fine, no problem with that.
However, when my application is started for the first time the CollectionThread runs approximately 3 minutes to collect data from approximately 4300 audio files on an Intel Pentium M 1,4 GHz, 512 MB RAM, Windows XP SP2. When the application is shut down and started again, it takes only a few seconds to do the same task for all subsequent launches.
I already tried to start the application with java option -Xms40m to increase initial heap size. This increases performance in general but the effect is still the same, i.e. first run lasts significantly longer than subsequent runs.
I also tried to build a pool mechanism which creates many empty objects in the data model and then releases them to contain the actual data at is being read in but this did not lead to better performance.
It must have to do with how Java (or Windows?) allocates and caches memory. I wonder whether there is a way to pre-allocate memory or if there are any other ideas to improve performance so that the process always only takes seconds instead of minutes?
I attach the key classes to this message. Any help or ideas is much appreciated!
Thanks a lot a best regards
Ulrich
PS: You can use the news subscription service at
http://www.lightdev.com/dynTemplate.php4?id=80&dynPage=subscribe.php4 to be informed when the new release of Playlist Editor is available.
All classes posted here do not need debugging, they already have proven to run error free. The classes are only posted for information for the interested reader - no need to go through all the stuff in detail - only if it interests you.
My application calls class CollectionThread wich is a subclass of InfoThread. CollectionThread recursively goes through a directory and file structure and stores found ID3 tag information in instances of class ID3v11Tag which in turn gets stored in one instance of class AudioDataModel. All classes are shown below.
This is the mentioned CollectionThread
* Light Development Playlist Editor
* Copyright (C) 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.app.playlisteditor.data;
import com.lightdev.lib.util.InfoThread;
import java.io.File;
* A class to collect audio data from a given storage location.
* <p>
* <code>CollectionThread</code> uses ID3 tag information to gain data.
* </p>
* <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
* ID3 tags.</p>
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software as well as any licensing notes
* inside this documentation
* @version 1, October 13, 2004
public class CollectionThread extends InfoThread {
* constructor
* @param model AudioDataModel the data model to collect data to
public CollectionThread(AudioDataModel model) {
this.model = model;
* constructor, creates a new empty AudioDataModel
public CollectionThread() {
this(new AudioDataModel());
* set the data model to collect data to
* @param model AudioDataModel the model to collect data to
public void setModel(AudioDataModel model) {
this.model = model;
* get the data model associated to this thread
* @return AudioDataModel the data model
public AudioDataModel getModel() {
return model;
* set the directory to collect data from
* @param rootDir File the directory to collect data from
public void setRootDirectory(File rootDir) {
this.rootDir = rootDir;
* do te actual work of this thread, i.e. iterate through a given directory
* structure and collect audio data
* @return boolean true, if work is left
protected boolean work() {
boolean workIsLeft = true;
maxValue = -1;
filesProcessed = 0;
if(getStatus() < STATUS_HALT_PENDING) {
countElements(rootDir.listFiles());
if(getStatus() < STATUS_HALT_PENDING) {
workIsLeft = collect(rootDir.listFiles());
return workIsLeft;
* count the elements in a given file array including its subdirectories
* @param files File[]
private void countElements(File[] files) {
int i = 0;
while (i < files.length && getStatus() < STATUS_HALT_PENDING) {
File file = files;
if (file.isDirectory()) {
countElements(file.listFiles());
i++;
maxValue++;
* recursively read data into model
* @param files File[] the file array representing the content of a given directory
private boolean collect(File[] files) {
int i = 0;
while(i < files.length && getStatus() < STATUS_HALT_PENDING) {
File file = files[i];
if(file.isDirectory()) {
collect(file.listFiles());
else if(file.getName().toLowerCase().endsWith("mp3")) {
try {
model.addTrack(file);
catch(Exception e) {
fireThreadException(e);
i++;
filesProcessed++;
fireThreadProgress(filesProcessed);
return (i<files.length);
/** the directory to collect data from */
private File rootDir;
/** the data model to collect data to */
private AudioDataModel model;
/** the number of files this thread processed so far while it is running */
private long filesProcessed = 0;
This is class InfoThread
* Light Development Java Library
* Copyright (C) 2003, 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.lib.util;
import java.util.Vector;
import java.util.Enumeration;
* Abstract class <code>InfoThread</class> implements a status and listener concept.
* An <code>InfoThread</code> object actively informs all objects registered as listeners about
* status changes, progress and possible exceptions. This way the status of a running
* thread does not require a polling mechanism to be monitored.
* <p>
* <code>InfoThread</code> implements the following working scheme
* </p>
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software
* @version Version 1, October 13, 2004
public abstract class InfoThread extends Thread {
* construct an <code>InfoThread</code> object
* <p>This class is meant to be used when a <code>Thread</code> object is needed that actively
* informs other objects about its status</code>. It is a good idea therefore to register
* one or more listeners with instances of this class before doing anything
* else.</p>
* @see addInfoThreadListener
public InfoThread() {
* set the amount of time this thread shall idle after it is through with one
* work cycle and before a next work cycle is started. This influences the time
* other threads have for their work.
* @param millis long the number of milliseconds to idle after one work cycle
public void setIdleMillis(long millis) {
idleMillis = millis;
* Causes this thread to begin execution; the Java Virtual Machine calls the <code>run</code>
* method of this thread. Calls method <code>prepareThread</code> before calling
* <code>run</code>.
* @see run
* @see prepareThread
public synchronized void start() {
setStatus(STATUS_INITIALIZING);
prepareThread();
setStatus(STATUS_READY);
super.start();
* call method <code>start</code> instead of this method.
* calling this method directly will lead to an exception
* @see start
public void run() {
//System.out.println("InfoThread.run");
if (status == STATUS_READY) {
boolean workIsLeft = true;
setStatus(STATUS_RUNNING);
while (status < STATUS_STOP_PENDING && workIsLeft) {
if (status < STATUS_HALT_PENDING) {
workIsLeft = work();
if(!workIsLeft) {
setStatus(STATUS_WORK_COMPLETE);
if (status == STATUS_HALT_PENDING) {
setStatus(STATUS_HALTED);
else if (status == STATUS_STOP_PENDING) {
setStatus(STATUS_STOPPED);
else {
try {
sleep(idleMillis);
catch (InterruptedException e) {
fireThreadException(e);
else {
// error: Thread is not ready to run
setStatus(STATUS_THREAD_FINISHED);
* stop this thread. This will terminate the thread irrevokably. Use method
* <code>haltThread</code> to pause a thread with the possiblity to resume work later.
* @see haltThread
public void stopThread() {
switch (status) {
case STATUS_RUNNING:
setStatus(STATUS_STOP_PENDING);
break;
case STATUS_HALT_PENDING:
// exception: the thread already is about to halt
break;
case STATUS_STOP_PENDING:
// exception: the thread already is about to stop
break;
default:
// exception: a thread can not be stopped, when it is not running
break;
* halt this thread, i.e. pause working allowing to resume later
* @see resumeThread
public void haltThread() {
switch (status) {
case STATUS_RUNNING:
setStatus(STATUS_STOP_PENDING);
break;
case STATUS_HALT_PENDING:
// exception: the thread already is about to halt
break;
case STATUS_STOP_PENDING:
// exception: the thread already is about to stop
break;
default:
// exception: a thread can not be halted, when it is not running
break;
* resume this thread, i.e. resume previously halted work
* @see haltThread
public void resumeThread() {
if(status == STATUS_HALTED || status == STATUS_HALT_PENDING) {
setStatus(STATUS_RUNNING);
else {
// exception: only halted threads or threads that are about to halt can be resumed
* this is the method to prepare a thread to run. It is not implemented in this abstract
* class. Subclasses of <code>InfoThread</code> can implement this method to do anything
* that might be required to put their thread into STATUS_READY. This method is called
* automatically by method <code>start</code>. When implementing this method, it should
* call method <code>fireThreadException</code> accordingly.
* @see start
* @see fireThreadException
protected void prepareThread() {
// does nothing in this abstract class but might be needed in subclasses
* this is the main activity method of this object. It is not implemented in this abstract
* class. Subclasses of <code>InfoThread</code> must implement this method to do something
* meaningful. When implementing this method, it should call methods
* <code>fireThreadProgress</code> and <code>fireThreadException</code> accordingly.
* @return boolean true, if work is left, false if not
* @see fireThreadProgress
* @see fireTreadException
protected abstract boolean work();
* add an <code>InfoTreadListener</code> to this instance of <code>InfoThread</code>
* @param l InfoThreadListener the listener to add
* @see removeInfoThreadListener
public void addInfoThreadListener(InfoThreadListener l) {
listeners.add(l);
* remove an <code>InfoTreadListener</code> from this instance of <code>InfoThread</code>
* @param l InfoThreadListener the listener to remove
public void removeInfoThreadListener(InfoThreadListener l) {
listeners.remove(l);
* notify all <code>InfoThreadListener</code>s of a status change
* @param fromStatus int the status tis thread had before the change
* @param toStatus int the status this thread has now
protected void fireThreadStatusChanged(int fromStatus, int toStatus) {
Enumeration e = listeners.elements();
while(e.hasMoreElements()) {
Object l = e.nextElement();
if(l instanceof InfoThreadListener) {
((InfoThreadListener) l).threadStatusChanged(this, fromStatus, toStatus);
* notify all <code>InfoThreadListener</code>s of an exception in this thread
* @param ex Exception the exception that occurred
protected void fireThreadException(Exception ex) {
Enumeration e = listeners.elements();
while(e.hasMoreElements()) {
Object l = e.nextElement();
if(l instanceof InfoThreadListener) {
((InfoThreadListener) l).threadException(this, ex);
* notify all <code>InfoThreadListener</code>s of the progress of this thread
* @param progressValue long a value indicating the current thread progress
protected void fireThreadProgress(long progressValue) {
Enumeration e = listeners.elements();
while(e.hasMoreElements()) {
Object l = e.nextElement();
if(l instanceof InfoThreadListener) {
((InfoThreadListener) l).threadProgress(this, progressValue, maxValue);
* set the status of this thread and notify all listeners
* @param newStatus int the status this thread is to be changed to
private void setStatus(int newStatus) {
//System.out.println("InfoThread.setStatus oldStatus=" + status + ", newStatus=" + newStatus);
int fromStatus = status;
status = newStatus;
fireThreadStatusChanged(fromStatus, newStatus);
* get the current status of this thread
* @return int the status
public int getStatus() {
return status;
* cleanup before actual destruction.
public void destroy() {
//System.out.println("InfoThread.destroy");
cleanup();
super.destroy();
* cleanup all references this thread maintains
private void cleanup() {
//System.out.println("InfoThread.cleanup");
listeners.removeAllElements();
listeners = null;
/* ----------------------- class fields start ------------------------ */
/** storage for the objects this thread notifies about status changes and progress */
private Vector listeners = new Vector();
/** indicator for the status of this thread */
private int status = STATUS_NONE;
/** maximum value for threadProgress */
protected long maxValue = -1;
/** the idle time inside one work cycle in milliseconds */
protected long idleMillis = 1;
/* ----------------------- class fields end -------------------------- */
/* ----------------------- constants start --------------------------- */
/** constant value indicating that no status has been set so far */
public static final int STATUS_NONE = 0;
/** constant value indicating that the thread is currently initializing */
public static final int STATUS_INITIALIZING = 1;
/** constant value indicating that the thread is ready to run */
public static final int STATUS_READY = 2;
/** constant value indicating that the thread is running */
public static final int STATUS_RUNNING = 3;
/** constant value indicating that the thread is about to halt */
public static final int STATUS_HALT_PENDING = 4;
/** constant value indicating that the thread is halted */
public static final int STATUS_HALTED = 5;
/** constant value indicating that the work of this thread is complete */
public static final int STATUS_WORK_COMPLETE = 6;
/** constant value indicating that the thread is about to stop */
public static final int STATUS_STOP_PENDING = 7;
/** constant value indicating that the thread is stopped */
public static final int STATUS_STOPPED = 8;
/** constant value indicating that the thread is finished */
public static final int STATUS_THREAD_FINISHED = 9;
/* ----------------------- constants end --------------------------- */
}this is the InfoThreadListener interface
* Light Development Java Library
* Copyright (C) 2003, 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.lib.util;
* An interface classes interested to receive events from objects
* of class <code>InfoThread</code> need to implement.
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software
* @version Version 1, October 13, 2004
public interface InfoThreadListener {
* method to receive a status change notification from a thread
* @param thread InfoThread the thread which status changed
* @param fromStatus int the status which the thread had before the change
* @param toStatus int the status which the thread has now
public void threadStatusChanged(InfoThread thread, int fromStatus, int toStatus);
* method to receive a notification about the progress of a thread
* @param thread InfoThread the thread which notified about its progress
* @param progressValue long the value (e.g. 10 if 100 percent completed, 20 of 1 million files processed, etc.)
public void threadProgress(InfoThread thread, long progressValue, long maxValue);
* method to receive a notifiaction about the fact that an exception occurred in a thread
* @param thread InfoThread the thread for which an exception occurred
* @param e Exception the exception that occurred
public void threadException(InfoThread thread, Exception e);
}This is class AudioFileDescriptor
* Light Development Java Library
* Copyright (C) 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.lib.audio;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.Serializable;
import java.text.DecimalFormat;
* This class models characteristics of an audio file such as the absolute path
* of the file, its tag contents (if any) and the play duration, etc.
* <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
* ID3 tags.</p>
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software
* @version Version 1, October 13, 2004
public class AudioFileDescriptor implements Serializable, Comparable {
public AudioFileDescriptor(String absolutePath) throws FileNotFoundException, IOException {
load(absolutePath);
public boolean equals(Object o) {
if(o != null && o instanceof AudioFileDescriptor) {
return ((AudioFileDescriptor) o).getAbsolutePath().equalsIgnoreCase(this.getAbsolutePath());
else {
return false;
public void load(String absolutePath) throws FileNotFoundException, IOException {
this.absolutePath = absolutePath;
RandomAccessFile rf = new RandomAccessFile(absolutePath, "r");
if(id3v11Tag == null) {
id3v11Tag = new ID3v11Tag(rf, false);
else {
id3v11Tag.readTag(rf, rf.length() - 128);
rf.close();
public String getAbsolutePath() {
return absolutePath;
public ID3v11Tag getID3v11Tag() {
return id3v11Tag;
public void setID3v11Tag(ID3v11Tag tag) {
this.id3v11Tag = tag;
public String toString() {
DecimalFormat df = new DecimalFormat("00");
return id3v11Tag.getArtist() + ", " + id3v11Tag.getAlbum() + " - " +
df.format(id3v11Tag.getTrackNumber()) + " " + id3v11Tag.getTitle();
* Compares this object with the specified object for order.
* @param o the Object to be compared.
* @return a negative integer, zero, or a positive integer as this object is less than, equal to,
* or greater than the specified object.
* @todo Implement this java.lang.Comparable method
public int compareTo(Object o) {
return toString().compareTo(o.toString());
private String absolutePath;
private ID3v11Tag id3v11Tag;
private transient long duration = -1;
private transient int type = TYPE_UNKNOWN;
public static final transient int TYPE_UNKNOWN = 0;
public static final transient int TYPE_MP3 = 1;
}This is class ID3V11Tag into which the data is actually stored
* Light Development Java Library
* Copyright (C) 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.lib.audio;
import java.io.File;
import java.io.RandomAccessFile;
import java.io.IOException;
import java.io.Serializable;
import java.text.DecimalFormat;
* This class is a very simple implementation of an ID3v11Tag. It models an ID3 tag
* pretty much the same way as it is physically stored inside an audio file.
* <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
* ID3 tags.</p>
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software
* @version Version 1, October 13, 2004
public class ID3v11Tag implements Serializable, Comparable {
* construct an ID3v11Tag and read tag content from a given file
* <p>This constructor can be used for cases where a RandomAccessFile has already
* been opened and will be closed elsewhere</p>
* @param rf RandomAccessFile the open file to read from
* @param isAtTagStartPos boolean true, if the file pointer is at the
* position where the ID3 tag starts; when false, the pointer is positioned accordingly here
* @throws IOException
public ID3v11Tag(RandomAccessFile rf, boolean isAtTagStartPos) throws IOException {
if(isAtTagStartPos) {
readTag(rf);
else {
readTag(rf, rf.length() - 128);
* construct an ID3v11Tag and read tag content from a file at a given location
* <p>This constructor opens and closes the audio file for reading</p>
* @param absolutePath String the absolute path to the audio file to open
* @throws IOException
public ID3v11Tag(String absolutePath) throws IOException {
RandomAccessFile rf = new RandomAccessFile(absolutePath, "r");
readTag(rf, rf.length() - 128);
rf.close();
* construct an ID3v11Tag and read tag content from a given file
* <p>This constructor opens and closes the audio file for reading</p>
* @param audioFile File the audio file to read from
* @throws IOException
public ID3v11Tag(File audioFile) throws IOException {
this(audioFile.getAbsolutePath());
* get a string representation of this object
* @return String
public String toString() {
DecimalFormat df = new DecimalFormat("00");
return getArtist() + ", " + getAlbum() + " - " + df.format(getTrackNumber()) + " " + getTitle();
* position to file pointer and read the tag
* @param rf RandomAccessFile the file to read from
* @param jumpPos long the position to jump to (the tag start position)
* @throws IOException
public void readTag(RandomAccessFile rf, long jumpPos) throws IOException {
rf.seek(jumpPos);
readTag(rf);
* read the tag from a given file, assuming the file pointer to be at the tag start position
* @param rf RandomAccessFile the file to read from
* @throws IOException
public void readTag(RandomAccessFile rf) throws IOException {
rf.read(tagBuf);
if(tag.equalsIgnoreCase(new String(tagBuf))) {
rf.read(title);
rf.read(artist);
rf.read(album);
rf.read(year);
rf.read(comment);
rf.read(trackNo);
rf.read(genre);
public String getTitle() {
return new String(title).trim();
public String getArtist() {
return new String(artist).trim();
public String getAlbum() {
return new String(album).trim();
public String getYear() {
return new String(year).trim();
public String getComment() {
return new String(comment).trim();
public int getGenreId() {
try {
int id = new Byte(genre[0]).intValue();
if(id < GENRE_ID_MIN || id > GENRE_ID_MAX) {
return GENRE_ID_OTHER;
else {
return id;
catch(Exception ex) {
return GENRE_ID_OTHER;
public String getGenreName() {
return genreNames[getGenreId()];
public int getTrackNumber() {
try {
return (int) trackNo[0];
catch(Exception e) {
return 0;
* Compares this object with the specified object for order.
* @param o the Object to be compared.
* @return a negative integer, zero, or a positive integer as this object is less than, equal to,
*Hi Franck,
thank you, mate. I did what you suggested (changed class attached) but that did not change the mentioned behaviour.
The first run is approximately 75 seconds with Java option -Xms40m and approx. double without, the second run and all subsequent runs are only 2-3 seconds each (!!!) even when terminating and re-starting the application between thread runs.
I'm pretty clueless about that, any more help on this anyone?
Thanks a lot and best regards
Ulrich
PS: BTW, I forgot to post the class that is filled with data by class CollectionThread, so here it is
* Light Development Playlist Editor
* Copyright (C) 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.app.playlisteditor.data;
import java.io.File;
import com.lightdev.lib.audio.ID3v11Tag;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.IOException;
import java.io.Serializable;
import com.lightdev.lib.audio.AudioFileDescriptor;
import com.lightdev.lib.ui.SortListModel;
import java.util.Iterator;
* Storage model for audio data.
* <p>
* <code>AudioDataModel</code> can be used to store ID3 tag data collected from
* a directory with audio files to perform queries and reports on the found data.
* </p>
* <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
* ID3 tags.</p>
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software as well as any licensing notes
* inside this documentation
* @version 1, October 15, 2004
public class AudioDataModel extends SortListModel implements Serializable {
* constructor
public AudioDataModel() {
* add an audio track from a given audio file
* <p>This will attempt to read ID3 tag data from the file.</p>
* @param audioFile File the file to add audio data for
* @throws IOException
public void addTrack(File audioFile) throws IOException {
AudioFileDescriptor afd = new AudioFileDescriptor(audioFile.getAbsolutePath());
if (!data.contains(afd)) {
data.add(afd);
* get all tracks for agiven combination of genre name, artist name and album name. Any of
* the parameters may be null or AudioDataModel.FILTER_ALL
* <p>Ugly code, I know, but it simply hard codes all combinations of the the mentioned
* parameters. Any more elegant implementations welcome.</p>
* @param genreName String a genre name to get tracks for
* @param artistName String an artist name to get tracks for
* @param albumName String an album name to get tracks for
* @return SortListModel the found tracks in a list model
public SortListModel getTracks(String genreName, String artistName, String albumName) {
SortListModel foundTracks = new SortListModel();
Iterator e = data.iterator();
while(e.hasNext()) {
AudioFileDescriptor afd = (AudioFileDescriptor) e.next();
ID3v11Tag tag = afd.getID3v11Tag();
if(genreName == null || genreName.equalsIgnoreCase(FILTER_ALL)) {
if(artistName == null || artistName.equalsIgnoreCase(FILTER_ALL)) {
if (tag.getAlbum().equalsIgnoreCase(albumName))
foundTracks.add(afd);
else {
if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
if (tag.getArtist().equalsIgnoreCase(artistName))
foundTracks.add(afd);
else {
if (tag.getArtist().equalsIgnoreCase(artistName) &&
tag.getAlbum().equalsIgnoreCase(albumName))
foundTracks.add(afd);
else {
if(artistName == null || artistName.equalsIgnoreCase(FILTER_ALL)) {
if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
if (tag.getGenreName().equalsIgnoreCase(genreName))
foundTracks.add(afd);
else {
if (tag.getGenreName().equalsIgnoreCase(genreName) &&
tag.getAlbum().equalsIgnoreCase(albumName))
foundTracks.add(afd);
else {
if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
if (tag.getGenreName().equalsIgnoreCase(genreName) &&
tag.getArtist().equalsIgnoreCase(artistName))
foundTracks.add(afd);
else {
if (tag.getGenreName().equalsIgnoreCase(genreName) &&
tag.getArtist().equalsIgnoreCase(artistName) &&
tag.getAlbum().equalsIgnoreCase(albumName))
foundTracks.add(afd);
foundTracks.sort();
return foundTracks;
* list all artists in this model
* @return SortListModel
public SortListModel listArtists() {
SortListModel artists = new SortListModel();
artists.add(FILTER_ALL);
Iterator e = data.iterator();
while (e.hasNext()) {
ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
String artistName = tag.getArtist();
if (artists.indexOf(artistName) < 0) {
artists.add(artistName);
artists.sort();
return artists;
* list all artists in this model having titles belonging to a given genre
* @param genreName String name of the genre artists are searched for
* @return SortListModel
public SortListModel listArtists(String genreName) {
SortListModel artists = new SortListModel();
artists.add(FILTER_ALL);
Iterator e = data.iterator();
while (e.hasNext()) {
ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
String artistName = tag.getArtist();
String genre = tag.getGenreName();
if (artists.indexOf(artistName) < 0 && genre.equalsIgnoreCase(genreName)) {
artists.add(artistName);
artists.sort();
return artists;
* list all genres in this model
* @return SortListModel
public SortListModel listGenres() {
SortListModel genres = new SortListModel();
genres.add(FILTER_ALL);
Iterator e = data.iterator();
while (e.hasNext()) {
ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
String genreName = tag.getGenreName();
if (genres.indexOf(genreName) < 0) {
genres.add(genreName);
genres.sort();
return genres;
* list all albums in this model
* @return SortListModel
public SortListModel listAlbums() {
SortListModel albums = new SortListModel();
albums.add(FILTER_ALL);
Iterator e = data.iterator();
while (e.hasNext()) {
ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
String albumName = tag.getAlbum();
if (albums.indexOf(albumName) < 0) {
albums.add(albumName);
albums.sort();
return albums;
* list all albums in this model having titles belonging to a given genre
* @param genreName String name of the genre albums are searched for
* @return SortListModel
public SortListModel listAlbums(String genreName) {
SortListModel albums = new SortListModel();
albums.add(FILTER_ALL);
Iterator e = data.iterator();
while (e.hasNext()) {
ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
String albumName = tag.getAlbum();
String genre = tag.getGenreName();
if (albums.indexOf(albumName) < 0 && genre.equalsIgnoreCase(genreName)) {
albums.add(albumName);
albums.sort();
return albums;
* list all albums in this model having titles belonging to a given genre and artist
* @param genreName String name of the genre albums are searched for
* @param artistName String name of the artist albums are searched for
* @return SortListModel
public SortListModel listAlbums(String genreName, String artistName) {
SortListModel albums = new SortListModel();
albums.add(FILTER_ALL);
Iterator e = data.iterator();
while (e.hasNext()) {
ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
String albumName = tag.getAlbum();
String genre = tag.getGenreName();
String artist = tag.getArtist();
if(genreName == null || genreName.equalsIgnoreCase(FILTER_ALL)) {
if (albums.indexOf(albumName) < 0 &&
artist.equalsIgnoreCase(artistName))
albums.add(albumName);
else {
if (albums.indexOf(albumName) < 0 &&
genre.equalsIgnoreCase(genreName) &&
artist.equalsIgnoreCase(artistName))
albums.add(albumName);
albums.sort();
return albums;
* get the number of audio tracks stored in this data model
* @return int the number of tracks
public int getTrackCount() {
return data.size();
/** constant to select all items of a given part */
public static final String FILTER_ALL = " all";
}...and here the changed CollectionThread now caching found File objects in a vector
* Light Development Playlist Editor
* Copyright (C) 2004 Ulrich Hilger
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package com.lightdev.app.playlisteditor.data;
import com.lightdev.lib.util.InfoThread;
import java.io.File;
import java.util.Vector;
import java.util.Enumeration;
* A class to collect audio data from a given storage location.
* <p>
* <code>CollectionThread</code> uses ID3 tag information to gain data.
* </p>
* <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
* ID3 tags.</p>
* @author Ulrich Hilger
* @author Light Development
* @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
* @author <a href="mailto:[email protected]">[email protected]</a>
* @author published under the terms and conditions of the
* GNU General Public License,
* for details see file gpl.txt in the distribution
* package of this software as well as any licensing notes
* inside this documentation
* @version 1, October 13, 2004
public class CollectionThread extends InfoThread {
* constructor
* @param model AudioDataModel the data model to collect data to
public CollectionThread(AudioDataModel model) {
this.model = model;
* constructor, creates a new empty AudioDataModel
public CollectionThread() {
this(new AudioDataModel());
* set the data model to collect data to
* @param model AudioDataModel the model to collect data to
public void setModel(AudioDataModel model) {
this.model = model;
* get the data model associated to this thread
* @return AudioDataModel the data model
public AudioDataModel getModel() {
return model;
* set the directory to collect data from
* @param rootDir File the directory to collect data from
public void setRootDirectory(File rootDir) {
this.rootDir = rootDir;
* this is the method to prepare a thread to run.
protected void prepareThread() {
maxValue = -1;
filesProcessed = 0;
innerCount = 0;
fileList = new Vector();
* do the actual work of this thread, i.e. iterate through a given directory
* structure and collect audio data
* @return boolean true, if work is left
protected boolean work() {
boolean workIsLeft = true;
if(getStatus() < STATUS_HALT_PENDING) {
countElements(rootDir.listFiles());
if(getStatus() < STATUS_HALT_PENDING) {
workIsLeft = collect(); //collect(rootDir.listFiles());
fileList.clear();
fileList = null;
return workIsLeft;
* count the elements in a given file array including its subdirectories
* @param files File[]
private void countElements(File[] files) {
int i = 0;
while (i < files.length && getStatus() < STATUS_HALT_PENDING) {
File file = files;
if (file.isDirectory()) {
countElements(file.listFiles());
else {
fileList.add(file);
i++;
maxValue++;
* read data into model
* @param files File[] the file array representing the content of a given directory
* @return boolean true, if work is left
private boolean collect(/*File[] files*/) {
Enumeration files = fileList.elements();
while(files.hasMoreElements() && getStatus() < STATUS_HALT_PENDING) {
File file = (File) files.nextElement();
try {
model.addTrack(file);
catch(Exception e) {
fireThreadException(e);
filesProcessed++;
if(++innerCount > 99) {
innerCount = 0;
fireThreadProgress(filesProcessed);
return false;
int i = 0;
while(i < files.length && getStatus() < STATUS_HALT_PENDING) {
File file = files[i];
if(file.isDirectory()) {
collect(file.listFiles());
else if(file.getName().toLowerCase().endsWith("mp3")) {
try {
model.addTrack(file);
catch(Exception e) {
fireThreadException(e);
i++;
filesProcessed++;
fireThreadProgress(filesProcessed);
return (i<files.length);
/** the directory to collect data from */
private File rootDir;
/** the data model to collect data to */
private AudioDataModel model;
/** the number of files this thread processed so far while it is running */
private long filesProcessed = 0;
/** a list to temporary store found files */
private Vector fileList;
/** counter to determine when to fire progress messages */
private int innerCount = 0; -
Moving from Oracle to SAP--need your help
Dear All SAP Professionals
I have 6 years experience in Oracle Development (forms&reports); and i intend to start my new path with sales and distribution in SAP ERP v.6.
So i need your help where to start? which tutorials & docs? , and i want to study also ABAP
Regards
Mohamed 3amer>
Julius Bussche wrote:
> Alternately you can ask a few hundred basic interview questions in the forums and see how others like it...
>
Hmmm. -
They stole my macbook, this it is the serial number C2********TY3, to return to my mac.
I need your help.
<Edited by Host>Report it to the police and your homeowner/rental insurance.
http://support.apple.com/kb/HT2526 How to report lost or stolen Apple product -
I need your help(sap installation error : CJS-30022)
Hello My friends,
I meet so difficult problems.
- SAP NetWeaver Application Server ABAP 7.02 SP6 32-bit Developer Edition
- SAP NetWeaver Application Server ABAP 7.02 SP6 64-bit Developer Edition
In setting up above two version, it was interrupted on the menu during the installation.
I want to solve this problem.
To request help to solve this problem.
I searched "google" and " sdn.sap.com" but I didn't solve.
I installed the hardware OS xp 32bit cpu 2.4 ram 1 gb hdd 160 gb With OS windows7 64bit cpu 2.0 ram 3 gb hdd 80 gb ---
I installed as follows order
1.os xp pro, windows7 installation.
2.installing iis
3.As hdwwiz.exe MS Loopback Adapter network / ip: 10.10.0.10, 255.255.255.0
4.c: \ windows \ system32 \ drive \ etc \ host add to the 10.10.0.10 netweaver
5.The latest version of jre, java.com download at the click of a button installed in path: JAVA_HOME setting
6.Computer swap size: 4096 - 4096
7. Turn off the firewall settings
The default setting is
run
D:\Setup\SAPNW7.01ABAPTrial.part1\SAPNWABAP701SR1_TRIAL\SAP_NetWeaver701SR1_2008_Installation_Master\IM_WINDOWS_I386
\sapinst.exe
should install, run
During the installation, it is interrupted from "Import abap menu".
I need your help.
--------- error log ---------
WARNING 2012-07-13 17:13:12.859
CJSlibModule::writeWarning_impl()
Execution of the command ""C:\Program Files\Java\j2re1.4.2_19\bin\java.exe" -classpath migmon.jar -showversion -Xmx1024m com.sap.inst.migmon.imp.ImportMonitor -sapinst" finished with return code 2. Output:
java version "1.4.2_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode)
Required system resources are missing or not available:
Import directory 'C:\NWASABAPTRIAL70206\SAP_NetWeaver_702e_Export\DATA_UNITS\EXP2' does not have valid structure of subdirectories;
Import directory 'C:\NWASABAPTRIAL70206\SAP_NetWeaver_702e_Export\DATA_UNITS\EXP3' does not have valid structure of subdirectories.
ERROR 2012-07-13 17:13:12.859
CJSlibModule::writeError_impl()
CJS-30022 Program 'Migration Monitor' exits with error code 2. For details see log file(s) import_monitor.java.log, import_monitor.log.
ERROR 2012-07-13 17:13:12.875 [sixxcstepexecute.cpp:988]
FCO-00011 The step runMigrationMonitor with step key |NW_ABAP_OneHost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|2|0|NW_CreateDBandLoad|ind|ind|ind|ind|10|0|NW_ABAP_Import_Dialog|ind|ind|ind|ind|5|0|NW_ABAP_Import|ind|ind|ind|ind|0|0|runMigrationMonitor was executed with status ERROR ( Last error reported by the step :Program 'Migration Monitor' exits with error code 2. For details see log file(s) import_monitor.java.log, import_monitor.log.).
INFO 2012-07-13 17:13:13.562 [synxcpath.cpp:815]
CSyPath::createFile() lib=syslib module=syslib
Creating file C:\Program Files\sapinst_instdir\NW702\AS-ABAP\ADA\CENTRAL\__instana_tmp.xml.
WARNING 2012-07-13 17:13:15.0 [iaxxejshlp.cpp:150]
Could not get property IDs of the JavaScript object.
ERROR 2012-07-13 17:13:15.0 [iaxxejsctl.cpp:492]
FJS-00010 Could not get value for property .Hello,
Which system are you getting the error, XP / Win 7 ?
Please find the minimum H/W requirement (Source Inst Guide)
Minimum RAM :- 4GB
Paging file size :- 1 times RAM plus 8 GB
If you are trying for win 7, then I would recommend you to
increase the swap space and give it a try.
It looks like it is not getting the required system
resources (RAM).
Thanks,
Vishal -
Plz i need your help - Skype Number not working.
i need your help 2 days a go i brought polanda number it was working good now its not working i dont no why plz could you help me this is my phone number
[removed for privacy and security] which i broughtHi, Gaza898, and welcome to the Community,
We here in the Community do not have the tools to diagnose and rectify problems with Skype Numbers, however Skype Customer Service does. Here is a link to the instruction on how to contact Skype Customer Service via their secure portal: Contact Customer Service Skype is aware of lingering website issues. Temporarily enabling scripts, pop-up dialog boxes, and disabling plug-ins which could prohibit pop-ups may help get past website problems.
If you still experience difficulty reaching Skype Customer Service or find yourself redirected back to the Community, please try again using a different web browser and choosing a different path through the various drop-down menu options presented.
Also, look to approve a pop-up dialogue box which would connect you to start an instant message chat with a customer service agent. If you have pop-ups blocked in your browser settings, this will also block reaching an agent.
Last and not least, when you reach the last step of the process, remember to click on the "Start Chat" link when you are provided the choice of visiting the Community or starting an instant message chat with a customer service agent.
Regards,
Elaine
Was your question answered? Please click on the Accept as a Solution link so everyone can quickly find what works! Like a post or want to say, "Thank You" - ?? Click on the Kudos button!
Trustworthy information: Brian Krebs: 3 Basic Rules for Online Safety and Consumer Reports: Guide to Internet Security Online Safety Tip: Change your passwords often! -
My iphone5 was stolen.. i was slept on the bus, pls help how to deactivate it? badly need your help.. its only two months on me
What To Do If Your iDevice Is Lost Or Stolen
If you activated Find My Phone before it was lost or stolen, you can track it only if Wi-Fi is enabled on the device. What you cannot do is track your device using a serial number or other identifying number. You cannot expect Apple or anyone else to find your device for you. You cannot recover your loss unless you insure your device for such loss. It is not covered by your warranty.
If your iPhone, iPod, iPod Touch, or iPad is lost or stolen what do you do? There are things you should have done in advance - before you lost it or it was stolen - and some things to do after the fact. Here are some suggestions:
This link, Re: Help! I misplaced / lost my iPhone 5 today morning in delta Chelsea hotel downtown an I am not able to track it. Please help!, has some good advice regarding your options when your iDevice is lost or stolen.
1. Reporting a lost or stolen Apple product
2. Find my lost iPod Touch
3. AT&T. Sprint, and Verizon can block stolen phones/tablets
4. What-To-Do-When-Iphone-Is-Stolen
5. What to do if your iOS device is lost or stolen
6. 6 Ways to Track and Recover Your Lost/Stolen iPhone
7. Find My iPhone
8. Report Stolen iPad | Stolen Lost Found Online
It pays to be proactive by following the advice on using Find My Phone before you lose your device:
1. Find My iPhone
2. Setup your iDevice on iCloud
3. OS X Lion/Mountain Lion- About Find My Mac
4. How To Set Up Free Find Your iPhone (Even on Unsupported Devices) -
HT201359 Hi I need your help, I am civil engineer and recently I bought an app
Hi I need your help, I am civil engineer and recently I bought an app call "sewer pipe design" . After I installed it in my iphone I found that developer is cheating people.
In order to design a sewer pipes we need to know manning coefficient commonly known as roughest. second to design a sewer pipe we don't use minimum tractive force bc is this a parameter for designing open channel on the ground/earth. i f the sewer is a prression with use another principles like loss head and Hassen William formule. So this developer is cheating apple customers.
I have already complain with apple support but they only asked me to fill another complain I did it, also they told me that asked a refund but i don find any link for doing this. what can I do??
<Email Edited By Host>You don't say how you contacted them, so I don't know if this is what you used. You can try the 'report a problem' link from your purchase history : log into your account on your computer's iTunes via Store > View My Account (Store > View My Apple ID on iTunes 11) and you should then see a Purchase History section with a 'see all' link to the right of it ; click on that and you should see a list of your purchases ; find that app and use the 'Report a Problem' link and fill in details about the problem (iTunes support should reply within, I think, about 24 hours).
Some people have had a problem with the 'report a problem' link (it's been taking people to this site on a browser instead of showing a form in iTunes) - if it does that to you then try contacting iTunes support via this page : http://www.apple.com/support/itunes/contact/- click on Contact iTunes Store Support on the right-hand side of the page, then Purchases, Billing & Redemption.
As these are user-to-user forums I've asked the hosts to remove your email address from your post. -
Beginner in java and need your help about DES
hello,
I m a new guy in java programming and learn from many books.I m making a website and portal right now and dying need your help about DES.my portal (using java) requires somebody to make a login name and a password.I m done with the server and client things and rite now stuck with this "DES" stuff.
so I make some conditions and algorithm below..
1. when a user login,the password is encrypted.at this point,cleartext(id) and encryption (M,N) are involve.
2. then the key is changed based on algorithm.
3.the key changed by key(id) is received and the original text should be encrypted.
the algorithm
1. the original text x1.x2.x3.x4.x5.x6.x7.x8 (64 bits)
2. encypt the password
a. Each character is changed into an int type by the ASCII code, and let the 1st bit be an odd number parity bit.
b.The 1st bit of the 1st character in (IP) is set to '1', and the 8th bit of the 8th character as '64'.
c.the rest (IP) is like this
1 2 3 4 5 6 7 8
0 # 58 50 42 34 26 18 10 2
8 # 60 52 44 36 28 20 12 4
16 # 62 54 46 38 30 22 14 6
24 # 64 46 48 40 32 24 16 8
32 # 57 49 41 33 25 17 9 1
40 # 59 51 43 35 27 19 11 3
48 # 61 53 45 37 29 21 13 5
56 # 63 55 47 39 31 23 15 7
d. and lastly,from above,,it should be done like this
1 2 3 4 5 6 7
0 # 40 8 48 16 56 24 64 32
8 # 39 7 27 15 55 23 53 31
16 # 38 6 26 14 54 22 52 30
24 # 37 5 25 13 53 21 51 29
32 # 36 4 24 12 52 20 50 28
40 # 35 3 23 11 51 19 49 27
48 # 34 2 21 10 50 18 48 26
56 # 33 1 20 9 49 17 47 25
e. key y1,y2,y3,y4,y5,y6,y7,y8 (64bit)
f. generate the key based on ID
a. Each character is changed into an int type by the ASCII code, and let the 1st bit be an even number parity bit.
b.the process is repeat again.
anybody has an idea to help me with the sample program?
thanks in advance...just ask about a simple program how to receive a
password from somebody and change it to a key..and
then confirm it with DES.Once again I have a problem understanding what you are asking.
Are you trying to use the password as a key to encrypt some 'standard thing' and place this encrypted value in a database? If so then look in the JCE for 'password based encryption' such as PBEWithMD5AndDes. This seems back to front to me but I can see nothing wrong with the approach since the 'standard thing' you would encrypt is in effect a key. If this is for a commercial application then I would find a security expert to evaluate your proposal!
In my experience it is more normal to encrypt the user's password with DES and store the result in the database. To do this just look in the JCE for DES encryption and consider using DES with CBC and PKCS5 padding. Also, consider encrypting the concatenation of the user's 'user name' with the password as this will (almost certainly) avoid having two encrypted values in the database that are the same even if two users have the same password.
For both of these you might consider using Base64 or Hex to turn you encrpted bytes into ASCII characters before trying to store them in your DB. -
Need your help in Remodeling concept
Hi Gurus need your help in time estimations
I have a cube with data and now I need to add 10 new info objects to the cube which are including Date fields (BUDAT, BLDAT) these 10 fields will be populated to the cube from a Z table in ECC as we donu2019t have these fields in the cube we have to go for remodeling of the cube
My client requires how much time it will take to complete this
Now I want to know how much time it would take to do this (if any customer exits and user exits are required) and addition if new fields will have any effect on the current queries
Please advice in this
Thank youThe time taken will depends on a lots of factor like server speed, available memory, background jobs etc. Apart from this, the time will also depends on how much the cube is filled i.e. the no. of records in the cube. Its very abstract to tell you the exact time taken for this. But, please make sure that you have the backup of the cube which you are going to re-model. T0 say, I think 3-4 hours should be ok for the remodelling.
Thanks.
Shambhu -
I need your help with a decision to use iPhoto. I have been a PC user since the mid 1980’s and more recently have used ACDSee to manage my photo images and Photoshop to edit them. I have used ProShow Gold to create slideshows. I am comfortable with my own folder and file naming conventions. I currently have over 23,000 images of which around 60% are scans going back 75 years. Since I keep a copy of the originals, the storage requirements for over 46,000 images is huge. 180GB plus.
I now have a Macbook Pro and will add an iMac when the new models arrive. For my photos, I want to stay with Photoshop which also gives me the Bridge. The only obvious reason to use iPhoto is to take advantage of Faces and the link to iMovie to make slideshows. What am I missing and is using iPhoto worth the effort?
If I choose to use iPhoto, I am not certain whether I need to load the originals and the edited versions. I suspect that just the latter is sufficient. If I set PhotoShop as my external editor, I presume that iPhoto will keep track of all changes moving forward. However, over 23,000 images in iPhoto makes me twitchy and they are appear hidden within iPhoto. In the past, I have experienced syncing problems with, and database errors in, large databases. If I break up the images into a number of projects, I loose the value of Faces reaching back over time.
Some guidance and insight would be appreciated. I have a number of Faces questions which I will save for later.Bridge and Photoshop is a common file-based management system. (Not sure why you'd have used ACDSEE as well as Bridge.) In any event, it's on the way out. You won't be using it in 5 years time.
Up to this the lack of processing power on your computer left no choice but to organise this way. But file based organisation is as sensible as organising a Shoe Warehouse based on the colour of the boxes. It's also ultimately data-destructive.
Modern systems are Database driven. Files are managed, Images imported, virtual versions, lossless processing and unlimited editing are the way forward.
For a Photographer Photoshop is overkill. It's an enormously powerful app, a staple of the Graphic Designers' trade. A Photographer uses maybe 15% to 20% of its capability.
Apps like iPhoto, Lightroom, Aperture are the way forward - for photographers. There's the 20% of Photoshop that shooters actually use, coupled with management and lossless processing. Pop over to the Aperture or Lightroom forums (on the Adobe site) and one comment shows up over and over again... "Since I started using Aperture/ Lightroom I hardly ever use Photoshop any more..." and if there is a job that these apps can do, then the (much) cheaper Elements will do it.
The change is not easy though, especially if you have a long-standing and well thought out filing system of your own. The first thing I would strongly advise is that you experiment before making any decisions. So I would create a Library, import 300 or 400 shots and play. You might as well do this in iPhoto to begin with - though if you’re a serious hobbyist or a Pro then you'll find yourself looking further afield pretty soon. iPhoto is good for the family snapper, taking shots at birthdays and sharing them with friends and family.
Next: If you're going to successfully use these apps you need to make a leap: Your files are not your Photos.
The illustration I use is as follows: In my iTunes Library I have a file called 'Let_it_Be_The_Beatles.mp3'. So what is that, exactly? It's not the song. The Beatles never wrote an mp3. They wrote a tune and lyrics. They recorded it and a copy of that recording is stored in the mp3 file. So the file is just a container for the recording. That container is designed in a specific way attuned to the characteristics and requirements of the data. Hence, mp3.
Similarly, that Jpeg is not your photo, it's a container designed to hold that kind of data. iPhoto is all about the data and not about the container. So, regardless of where you choose to store the file, iPhoto will manage the photo, edit the photo, add metadata to the Photo but never touch the file. If you choose to export - unless you specifically choose to export the original - iPhoto will export the Photo into a new container - a new file containing the photo.
When you process an image in iPhoto the file is never touched, instead your decisions are recorded in the database. When you view the image then the Master is presented with these decisions applied to it. That's why it's lossless. You can also have multiple versions and waste no disk space because they are all just listings in the database.
These apps replace the Finder (File Browser) for managing your Photos. They become the Go-To app for anything to do with your photos. They replace Bridge too as they become a front-end for Photoshop.
So, want to use a photo for something - Export it. Choose the format, size and quality you want and there it is. If you're emailing, uploading to websites then these apps have a "good enough for most things" version called the Preview - this will be missing some metadata.
So it's a big change from a file-based to Photo-based management, from editing files to processing Photos and it's worth thinking it through before you decide. -
I want to get iBook, Facebook and Skype to my iphone 4.2.1 through my iTune, but I coudn't because it is said that it requires a newer version of iOS. Please I need your help. Thanks
If your iPhone can't be updated to a higher iOS version then the only way to get them is if you downloaded versions of them which were compatible with iOS 4.2.1 and you still have copies of those versions somewhere e.g. on your computer or on a backup - only the current version of each app is available in the store, and as apps (and other content) are tied to the account that downloads them, you will need to have older copies that are linked to your id
Maybe you are looking for
-
Dates wrong in List View of Calendar
Everything is entered correctly and shows up correctly in the Month and Day view of the calendar app on my iPhone. When I go to List view, however, events appear on the wrong dates! Very frustrating!! Anyone have a solution? Thanks. Jill
-
I am trying to add firefox sync. Part of the registration is to create a secret phrase. I don't know what is wrong with it. It is not at all evident. I have tried a secret phrase with caps, without caps, with spaces, without spaces. As soon as I try
-
Import from Excel file not picking up WBS
I believe I understand the mechanics of exporting activities to create a template to use for adding new activities to an existing project via a subsequent import. And it seems to work, i.e. I end up with new activities in my existing project. BUT....
-
Product is made up of 4 other products. (Digital Download)
I have a product that is made up of 4 different digital products. OR I have a product that is 200mb in download. Since I can't allow a larger than 100mb download, is there a way to give the user all four products when they buy the "collection" produc
-
Keep getting error code -50 when trying to burn a disc. how do I solve this?
Does anyone know how to solve the problem of getting "unknown error" code (-50) when trying to burn a disc? I don't know how this happened