(...) doesen't this reduce the lifetime of the battery?
Hello
Im using this special adapter to connect my iPod to my car (http://ipodyourbmw.com/). When I plug my iPod in, the battery is charged automaticly. But doesen't that reduce the lifetime of the battery???? I mean, everyone knows that you should't load the batteries all the time.
I'm worried because I often listen music via iPod in my car.
It shouldn't.
Just make sure to drain the battery once a month and then recharge completely, and you will be fine.
btabz
Similar Messages
-
Do static classes persist for the lifetime of the applet or the JRE in 1.4
I have an application that runs in a web browser and uses several applets that share data between each other using a static class. This method works fine for version 1.3 but not in 1.4.x. Do static classes now only exist for the lifetime of the applet?
I had a similar problem and solved it by setting the codebase attribute on the applet tags. The only documentation I have been able to find about this issue is here: http://java.sun.com/products/plugin/1.3.1_01a/new.html#classloader
-
How do I extend the lifetime of the Recently Added playlist?
When songs are downloaded into iTunes they appear in the "Recently Added" playlist for a while. After an unknown (by me at least) period of time, they disappear. Can I adjust the period of time, say to three, six, nine or twelve months, whare the songs would still appear in the "Recently Added" playlist?
Control-click the playlist, choose Edit Playlist, and change the Date Added cutoff.
(36412) -
What is the lifetime of a session?
Hi all,
I am writing a .NET application that queries an Oracle Database. I am altering the Session variable current_schema in order to execute commands with a different default schema than that of the logged in user. The change to current_schema should persist for the duration of the session, but I'm not sure how long this is. Originally I expected it to be the lifetime of the connection, but this is not the case.
The following code illustrates:
public sub getvalue()
Static Dim done As Boolean
Dim daODP As DataAdapter
Dim conODP As New OracleConnection("Data source=oracleInstance;User ID = username; Password = Password")
Dim cmdODP As New OracleCommand("alter session set current_schema = scott", conODP)
daODP = New OracleDataAdapter("Select columnName from TBLNAME", conODP)
If Not done Then
conODP.Open()
cmdODP.ExecuteNonQuery()
conODP.Close()
done = True
End If
conODP.Open()
Dim dsODP As New DataSet
daODP.Fill(dsODP)
conODP.Close()
end sub
The Alter session command is executed only the first time the method is called, however each subsequent call inherits the same 'session' from oracle, because if it didn't then the call would fail. Once the test application is restarted the session is reset.
When is a session created and when is it ended? Is session length a server property? is it dependent on traffic?(eg:timeout) Is it valid for the life of the application?So, to be clear (I was doing some searching around on connection pooling and sessions just to clarify things in my mind), if I use the default conection pooling enabled then I have to take extra care to ensure that I don't leave anything persistent laying about? For example, package variables set in one transaction could wind up persisting to another transaction by another user if they happen to pick up the connection used by the first user?
Damn, but that really is a pain for anyone with a history of using packages and whose brain just automatically assumes session-persistence for a given user when they're coding - it just simplifies so many things. But I don't particularly care to deal with the overhead of opening and closing connections left and right either. Time-consuming and expensive, especially the way .NET front end users are used to opening and closing them left and right.
Time to do some thinking on this..... -
Can the lifetime of default route (in RA) to the client be renewed?
The question is that why the "lifetime" for the "ipv6 nd ra" is set maximum 1800sec? It equals to just 30mins.
If this timer is expired, how to renew the RA to the client? If the renewal is not possible, the client will loss the default
route information forever. What is the solution for client not loss the default route (except the manual configuration)?
Thank youHi,
It's not really a lifetime at such. A non zero value means this router can be considered as a default-gateway.
From RFC 4861:
Router Lifetime
16-bit unsigned integer. The lifetime associated
with the default router in units of seconds. The
field can contain values up to 65535 and receivers
should handle any value, while the sending rules in
Section 6 limit the lifetime to 9000 seconds. A
Lifetime of 0 indicates that the router is not a
default router and SHOULD NOT appear on the default
router list. The Router Lifetime applies only to
the router's usefulness as a default router; it
does not apply to information contained in other
message fields or options. Options that need time
limits for their information include their own
lifetime fields.
Also please refer to http://www.cisco.com/en/US/docs/ios/ipv6/command/reference/ipv6_07.html#wp2360344
HTH
Laurent. -
Would like extraordinary depresiation to affect the lifetime
From our customer: Kaefer
Version: SAP 2005A SP01
Description of requirements: Extraordinary depresiation should affect the lifetime so that it's not as long as it originally was,
because when you do an extraordinary depresiation the lifetime stays the same. The system should calculate the lifetime according to the extraordinary depresiation.
I would like that the extraordinary depresiation is done automatically so
that it affects the lifetime as well.
Business needs: They use extraordinary depresiation manually, but they would like it to be done automatically so that they don't have to correct the lifetime after an extraordinay depresiation. It's a much better solution that this is done automatically by the system instead.
Examples: When adjusting the depresiation with an extraordinary depresiation, there should be a choice to shorten the lifetime so that the numbers are correct.
Current Workaround: Manually shorten the lifetime, but there is a possibility of making mistakes or entering the wrong numbers.
Proposed solution: Please see response under Examples.
Lena Marie Digre,
Support co-worker
SMB Business Partner
NorwayIn this case, you may check this thread to rewrite your DRQ so that others could understand:
Would like project entry on Recurring JEs and Posting Templates -
Unable to call the RFC from the WD java Program
Hi All,
I have a table and three buttons Create, Edit, Save in the layout.
If no record available in the R3 the the end user will click on create and then he will click on save so that the insert RFC will be called accordingly and the record will be inserted.My table is limited to 5 records only. If i enter all the 5 records and Click on submit the record is inserting in the backend , but if i enter less than 5 records im unable to call the RFC what might be the issue.
My insert RFC takes one Table node and 4 import parameters i'm passing all of the all the mentioned import parameters.
Code:-
View Controller code
// This file has been generated partially by the Web Dynpro Code Generator.
// MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
// ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
package com.gmr.ess;
// IMPORTANT NOTE:
// ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
// BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
// AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPPView).
// OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
// A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
// OF IMPORT STATEMENTS.
//@@begin imports
import java.math.BigDecimal;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Iterator;
import com.gmr.ess.wdp.IPrivateAPPView;
import com.gmr.pck.Zst_Hr_Nominee;
import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
import com.sap.tc.webdynpro.services.sal.um.api.IWDClientUser;
import com.sap.tc.webdynpro.services.sal.um.api.WDClientUser;
//@@end
//@@begin documentation
//@@end
public class APPView
Logging location.
private static final com.sap.tc.logging.Location logger =
com.sap.tc.logging.Location.getLocation(APPView.class);
static
//@@begin id
String id = "$Id$";
//@@end
com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
Private access to the generated Web Dynpro counterpart
for this controller class. </p>
Use <code>wdThis</code> to gain typed access to the context,
to trigger navigation via outbound plugs, to get and enable/disable
actions, fire declared events, and access used controllers and/or
component usages.
@see com.gmr.ess.wdp.IPrivateAPPView for more details
private final IPrivateAPPView wdThis;
Root node of this controller's context. </p>
Provides typed access not only to the elements of the root node
but also to all nodes in the context (methods node<i>XYZ</i>())
and their currently selected element (methods current<i>XYZ</i>Element()).
It also facilitates the creation of new elements for all nodes
(methods create<i>XYZ</i>Element()). </p>
@see com.gmr.ess.wdp.IPrivateAPPView.IContextNode for more details.
private final IPrivateAPPView.IContextNode wdContext;
A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
Represents the generic API of the generic Web Dynpro counterpart
for this controller. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDViewController wdControllerAPI;
A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
Represents the generic API of the Web Dynpro component this controller
belongs to. Can be used to access the message manager, the window manager,
to add/remove event handlers and so on. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
public APPView(IPrivateAPPView wdThis)
this.wdThis = wdThis;
this.wdContext = wdThis.wdGetContext();
this.wdControllerAPI = wdThis.wdGetAPI();
this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
//@@begin javadoc:wdDoInit()
/** Hook method called to initialize controller. */
//@@end
public void wdDoInit()
//@@begin wdDoInit()
try{
IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
IWDClientUser user = WDClientUser.getLoggedInClientUser();
String logUser= user.getSAPUser().getUniqueName();
wdContext.currentContextElement().setUserid(logUser);
wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();//Returns the user id for the employee
Collection nomineeList = new ArrayList();
wdThis.wdGetAPPController(). executeZ_Hrfm_Nominee_Disp_Input( );
int nomineeTableSize = wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().size();
for(int i=0;i< nomineeTableSize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
ele.setAddr(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getAddr());
ele.setDob(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getDob());
ele.setGuard(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getGuard());
ele.setName(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getName());
ele.setPerc(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getPerc());
ele.setRelat(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getRelat());
nomineeList.add(ele);
wdContext.nodeDisplay_table_node().bind(nomineeList);
wdContext.currentContextElement().setEdit_val_attr(true);
if(nomineeTableSize<=0){
wdContext.currentContextElement().setCreateButtonEnable(true);
wdContext.currentContextElement().setEditButtonEnable(false);
else{
wdContext.currentContextElement().setCreateButtonEnable(false);
wdContext.currentContextElement().setEditButtonEnable(true);
catch(Exception e){
wdComponentAPI.getMessageManager().reportException("",true);
//@@end
//@@begin javadoc:wdDoExit()
/** Hook method called to clean up controller. */
//@@end
public void wdDoExit()
//@@begin wdDoExit()
//@@end
//@@begin javadoc:wdDoModifyView
Hook method called to modify a view just before rendering.
This method conceptually belongs to the view itself, not to the
controller (cf. MVC pattern).
It is made static to discourage a way of programming that
routinely stores references to UI elements in instance fields
for access by the view controller's event handlers, and so on.
The Web Dynpro programming model recommends that UI elements can
only be accessed by code executed within the call to this hook method.
@param wdThis Generated private interface of the view's controller, as
provided by Web Dynpro. Provides access to the view controller's
outgoing controller usages, etc.
@param wdContext Generated interface of the view's context, as provided
by Web Dynpro. Provides access to the view's data.
@param view The view's generic API, as provided by Web Dynpro.
Provides access to UI elements.
@param firstTime Indicates whether the hook is called for the first time
during the lifetime of the view.
//@@end
public static void wdDoModifyView(IPrivateAPPView wdThis, IPrivateAPPView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
//@@begin wdDoModifyView
//@@end
//@@begin javadoc:onActionGetData(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionGetData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionGetData(ServerEvent)
//$$begin ActionButton(-535519310)
//wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Disp_Input();
//$$end
//@@end
//@@begin javadoc:onActionEdit(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionEdit(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionEdit(ServerEvent)
//$$begin ActionButton(-535519310)
displayTablesize=wdContext.nodeDisplay_table_node().size();
if(displayTablesize<5){
for(int i=0;i<size-displayTablesize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
wdContext. nodeDisplay_table_node().addElement(ele);
operation="MOD";
wdContext.currentContextElement().setTableReadOnly(true);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
//$$end
//@@end
//@@begin javadoc:onActionCreate(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionCreate(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionCreate(ServerEvent)
int month=0,year=0,day=0;
String month1,day1,year1;
try{
displayTablesize=wdContext.nodeDisplay_table_node().size();
wdContext.currentContextElement().setEdit_val_attr(false);
if(wdContext.nodeDisplay_table_node().isEmpty()){
if(displayTablesize<5){
Calendar cal=Calendar.getInstance();
month=cal.get(Calendar.MONTH)+1;
if(month==1||month==2||month==3||month==4||month==5||month==6||month==7||month==8||month==9){
month1="0"+month;
else{
month1=""+month;
day = cal.get(Calendar.DAY_OF_MONTH);
if(day==1||day==2||day==3||day==4||day==5||day==6||day==7||day==8||day==9){
day1= "0"+day;
else{
day1=""+day;
year = cal.get(Calendar.YEAR);
year1=""+year;
String strFormat=day1"."month1"."year1;
wdContext.currentOutput_NomineeElement().setBegda(strFormat);
wdContext.currentOutput_NomineeElement().setEndda("31.12.9999");
for(int i=0;i<size-displayTablesize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
wdContext. nodeDisplay_table_node().addElement(ele);
operation="INS";
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
wdContext.currentContextElement().setTableReadOnly(true);
catch(NullPointerException npe){
wdComponentAPI.getMessageManager().reportException("No Data Available",true);
//@@end
//@@begin javadoc:onActionSaveData(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionSaveData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionSaveData(ServerEvent)
float percentage=0;
float dupePercentage=0;
boolean isTest = false;
Collection DispTList = new ArrayList();
IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
try{
displayTablesize = wdContext.nodeDisplay_table_node().size();
//for(int i=1;i<=displayTablesize;i++){
for(int i=0;i<displayTablesize;i++){
BigDecimal share = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc();
String name = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName();
percentage = share.floatValue();
dupePercentage = dupePercentage + percentage;
if(name!=null && share!=null){
Zst_Hr_Nominee nominee = new Zst_Hr_Nominee();
nominee.setAddr(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
manager1.reportSuccess(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
nominee.setDob(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());
nominee.setGuard(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());
nominee.setName(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
nominee.setPerc(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
nominee.setRelat(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());
DispTList.add(nominee);
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
if((dupePercentage)!=100)
wdComponentAPI.getMessageManager().reportException(
"The sum of the share Percentages is not 100. Modify the percentages accordingly",true);
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
IWDMessageManager manager = wdComponentAPI.getMessageManager();
String beginDate = wdContext.currentOutput_NomineeElement().getBegda();
manager.reportSuccess(wdContext.currentOutput_NomineeElement().getBegda());
String endDate=wdContext.currentOutput_NomineeElement().getEndda();
manager.reportSuccess(wdContext.currentOutput_NomineeElement().getEndda());
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setBegda(beginDate);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setEndda(endDate);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
wdComponentAPI.getMessageManager().reportSuccess(operation);
wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();
wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Ins_Mod_Input();
//wdContext.currentContextElement().setTableReadOnly(false);
catch(Exception e){
e.getMessage();
//@@end
The following code section can be used for any Java code that is
not to be visible to other controllers/views or that contains constructs
currently not supported directly by Web Dynpro (such as inner classes or
member variables etc.). </p>
Note: The content of this section is in no way managed/controlled
by the Web Dynpro Designtime or the Web Dynpro Runtime.
//@@begin others
int nomineeTableSize = 0;
int displayTablesize = 0;
String operation= null;
int size=5;
// float dupePercentage=0;
//String mod_op="MOD";
//@@end
content of obsolete user coding area(s) -
//@@begin obsolete:javadoc:onActionSave(ServerEvent)
// /** Declared validating even
Component controller code
// This file has been generated partially by the Web Dynpro Code Generator.
// MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
// ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
package com.gmr.ess;
// IMPORTANT NOTE:
// ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
// BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
// AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPP).
// OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
// A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
// OF IMPORT STATEMENTS.
//@@begin imports
import java.util.Iterator;
import com.gmr.ess.wdp.IPrivateAPP;
import com.gmr.pck.Bapi_Employee_Getdata_Input;
import com.gmr.pck.Bapip0002B;
import com.gmr.pck.Z_Hrfm_Nominee_Disp_Input;
import com.gmr.pck.Z_Hrfm_Nominee_Ins_Mod_Input;
import com.gmr.pck.Zst_Hr_Nominee;
import com.sap.lcr.api.util.SetProfileConnect;
import com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException;
import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
//@@end
//@@begin documentation
//@@end
public class APP
Logging location.
private static final com.sap.tc.logging.Location logger =
com.sap.tc.logging.Location.getLocation(APP.class);
static
//@@begin id
String id = "$Id$";
//@@end
com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
Private access to the generated Web Dynpro counterpart
for this controller class. </p>
Use <code>wdThis</code> to gain typed access to the context,
to trigger navigation via outbound plugs, to get and enable/disable
actions, fire declared events, and access used controllers and/or
component usages.
@see com.gmr.ess.wdp.IPrivateAPP for more details
private final IPrivateAPP wdThis;
Root node of this controller's context. </p>
Provides typed access not only to the elements of the root node
but also to all nodes in the context (methods node<i>XYZ</i>())
and their currently selected element (methods current<i>XYZ</i>Element()).
It also facilitates the creation of new elements for all nodes
(methods create<i>XYZ</i>Element()). </p>
@see com.gmr.ess.wdp.IPrivateAPP.IContextNode for more details.
private final IPrivateAPP.IContextNode wdContext;
A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
Represents the generic API of the generic Web Dynpro counterpart
for this controller. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdControllerAPI;
A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
Represents the generic API of the Web Dynpro component this controller
belongs to. Can be used to access the message manager, the window manager,
to add/remove event handlers and so on. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
public APP(IPrivateAPP wdThis)
this.wdThis = wdThis;
this.wdContext = wdThis.wdGetContext();
this.wdControllerAPI = wdThis.wdGetAPI();
this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
//@@begin javadoc:wdDoInit()
/** Hook method called to initialize controller. */
//@@end
public void wdDoInit()
//@@begin wdDoInit()
//$$begin Service Controller(1490375209)
// wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(new Z_Hrfm_Nominee_Ins_Mod_Input());
Z_Hrfm_Nominee_Ins_Mod_Input input = new Z_Hrfm_Nominee_Ins_Mod_Input();
input.addNominee(new Zst_Hr_Nominee());
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(input);
//$$end
//$$begin Service Controller(-932523997)
wdContext.nodeZ_Hrfm_Nominee_Disp_Input().bind(new Z_Hrfm_Nominee_Disp_Input());
//$$end
//$$begin Service Controller(-368783613)
wdContext.nodeBapi_Employee_Getdata_Input().bind(new Bapi_Employee_Getdata_Input());
//$$end
//@@end
//@@begin javadoc:wdDoExit()
/** Hook method called to clean up controller. */
//@@end
public void wdDoExit()
//@@begin wdDoExit()
//@@end
//@@begin javadoc:wdDoPostProcessing()
Hook called to handle data retrieval errors before rendering.
After doModifyView(), the Web Dynpro Framework gets all context data needed
for rendering by validating the contexts (which in turn calls the supply
functions and supplying relation roles). In this hook, the application
should handle the errors which occurred during validation of the contexts.
Using preorder depth-first traversal, this hook is called for all component
controllers starting with the current root component.
Permitted operations:
- Flushing model queue
- Creating messages
- Reading context and model data
Forbidden operations:
- Invalidating model data
- Manipulating the context
- Firing outbound plugs
- Creating components
@param isCurrentRoot true if this is the root of the current request
//@@end
public void wdDoPostProcessing(boolean isCurrentRoot)
//@@begin wdDoPostProcessing()
//@@end
//@@begin javadoc:wdDoBeforeNavigation()
Hook before the navigation phase starts.
This hook allows you to flush the model queue and handle any
errors that occur. Firing outbound plugs is allowed in this hook.
Using preorder depth-first traversal, this hook is called for all component
controllers starting with the current root component.
@param isCurrentRoot true if this is the root of the current request
//@@end
public void wdDoBeforeNavigation(boolean isCurrentRoot)
//@@begin wdDoBeforeNavigation()
//@@end
//@@begin javadoc:wdDoApplicationStateChange()
Hook that informs the application about a state change.
<p>
This hook is called e.g. to tell the application that will be
<ul>
<li>left via a suspend plug and therefore should go into a suspend/sleep
mode with minimal need of resources. errors that occur. Firing
outbound plugs is allowed in this hook.
<li>left due to a timeout and could write it's state to a data base if the
user comes back later on
</ul>
The concrete reason is available via IWDApplicationStateChangeInfo
<p>
<b>Important</b>: This hook is called for the top level component only!
@param stateChangeInfo contains the information about the nature of the state change
@param stateChangeReturn allows the application to ask for a different state change.
The framework is allowed to ignore it considering i.e. the current resources situation.
//@@end
public void wdDoApplicationStateChange(com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeInfo stateChangeInfo, com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeReturn stateChangeReturn)
//@@begin wdDoApplicationStateChange()
//@@end
//@@begin javadoc:executeBapi_Employee_Getdata_Input()
/** Declared method. */
//@@end
public void executeBapi_Employee_Getdata_Input( )
//@@begin executeBapi_Employee_Getdata_Input()
//$$begin Service Controller(1705750894)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
Iterator itrGetData = null;
Bapip0002B out = null;
try
wdContext.currentBapi_Employee_Getdata_InputElement().modelObject().execute();
wdContext.nodeOutput().invalidate();
itrGetData = wdContext.currentOutputElement().modelObject().getPersonal_Data().iterator();
while (itrGetData.hasNext()) {
out = (Bapip0002B) itrGetData.next();
empNo = out.getPerno();
wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().setPernr(empNo);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setPernr(empNo);
// manager.reportSuccess(empNo);
//wdThis.executeZ_Hrfm_Nominee_Disp_Input();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
//@@begin javadoc:executeZ_Hrfm_Nominee_Disp_Input()
/** Declared method. */
//@@end
public void executeZ_Hrfm_Nominee_Disp_Input( )
//@@begin executeZ_Hrfm_Nominee_Disp_Input()
//$$begin Service Controller(-366407911)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().modelObject().execute();
wdContext.nodeOutput_Nominee().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
//@@begin javadoc:executeZ_Hrfm_Nominee_Ins_Mod_Input()
/** Declared method. */
//@@end
public void executeZ_Hrfm_Nominee_Ins_Mod_Input( )
//@@begin executeZ_Hrfm_Nominee_Ins_Mod_Input()
//$$begin Service Controller(1524028406)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().modelObject().execute();
wdContext.nodeOutput_nominee_ins_mod().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
The following code section can be used for any Java code that is
not to be visible to other controllers/views or that contains constructs
currently not supported directly by Web Dynpro (such as inner classes or
member variables etc.). </p>
Note: The content of this section is in no way managed/controlled
by the Web Dynpro Designtime or the Web Dynpro Runtime.
//@@begin others
String empNo = null;
//@@end
Suman
Edited by: sumankumar kurimilla on Dec 23, 2008 9:26 AMHi,
I have checked from RFC side that is working fine only java app its not working can you tell any thing needs to be changed from my application end.
Please check in Savedata action.
Regards,
Suman
Edited by: sumankumar kurimilla on Dec 23, 2008 11:01 AM -
How to get the UID of the iView instance?
In my iView implementation, I need to have a unique identifier for each iView instance. It is required to have the following characteristics.
1. Each individual iView instance should have a unique ID. For example, if an iView is added to a page twice (delta link), these two need to have different ID.
2. No two iViews can have the same ID.
3. This ID keep unchanged during the lifetime of the iView instance.
4. Different users view the same iView instance should see the same ID.
Does SAP provide this ID? How can I access this ID?
Thanks,
HarryHi Ganesh,
Your answer is most helpful, but I still have a few questions regarding the get_ API.
1. Is the URL Tab only available in .Net Unifier and .Net Custom iView according to this document?:
http://help.sap.com/saphelp_ep50sp6/helpdata/en/6c/670e3c421ff443e10000000a11405a/frameset.htm
But my iView is Java iView. My iView class extends AbstractPortalComponent. Can I use this method?
2. It looks like, to use this feature, I have to use iView Editor to create the iView. Is that right?
Let me provide a little bit more about my case. I created a Java iView, and have my own rendering for the personalization page by printing html in the doEdit() method. It means I am not using SAP's custom property page. I need the UID for each portlet instance, because I want to store something differently in cookies for each iview instance.
Thank you so much for helping me.
Regards,
Harry -
TABLE - How to set the row in the table
I have a problem where I have a selection on one view and then call a second view to display the results in a table. The table displays 5 rows. I then go down to the 20th row and select the row. When I have finished processing, I still have row 20 selected and I go back via a plug to the selection screen. I then enter new criteria and go back to the second view and the table displays that data showing row 20 as the first row. How do I get it to go back to row 1 every time I go into the second view??
Hello Graeme,
assuming i understand the problem, as a quick solution it would perhaps help to set the lifetime of the second view from "framework controlled" to "when visible" (in the properties of the view). Another way could be to explictly invalidate the context node holding the data for the second view after having left the view.
Kind regards
Andreas -
I am shooting with a Nikon D60 on Fine Format and unable to print larger than 11x14. I have been able to print larger pictures. I am told iPhoto reduces the size of the file when uploaded. Is this true? If so how can I change this? I need 16x20's
I am shooting with a Nikon D60 on Fine Format and unable to print larger than 11x14. I have been able to print larger pictures. I am told iPhoto reduces the size of the file when uploaded. Is this true? If so how can I change this? I need 16x20's
-
I added a personna 6/25/10, wanted to shorten the google navigation & search bars to see it but can't. Have re-installed the google tool bar, have selected the firefox tool bar version as my default and can then change the width but when one box gets shorter the other gets longer still filling the width of the screen. Customize tool bar doesn't give any options to shorten the tool bar width, I'm at a total loss. Would love suggestions if you've successfully fixed this.
== This happened ==
Every time Firefox opened
== 6-25-10The location bar and search bar have a flex property and take all available space.
You can only change the relative size of both with that resizer between the two bars.
You can only do that by adding a lot of Space elements in the View > Toolbars > Customize window.
You can set a fixed width by setting the min-width and max-width to the same value.
Add code to [http://kb.mozillazine.org/UserChrome.css userChrome.css] below the @namespace line.
See http://kb.mozillazine.org/Editing_configuration#How_to_edit_configuration_files
<pre><nowiki>@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* only needed once */
#urlbar-container {max-width:400px!important; min-width:400px!important;}
#search-container {max-width:200px!important; min-width:200px!important;}
</nowiki></pre>
You can chose your own values as long as the min-width and max-width for each bar have the same value. -
This is a test of the Edit button
I am using Harm's original guide posts to see what's happening with the edit button
How do you set up your editing machine in terms of disks for maximum performance and reliability? (SSD's are left out here.)
This is a question that often arises and all too often one sees that initial settings are really suboptimal. These rules are intended to help you decide how to setup your disks to get the best response times. Of course the only disks in an editing machine must be 7200 RPM types or faster. No GREEN disks at all.
Rule 1: NEVER partition a disk. You may ask why? First of all, it does not increase disk space, it just allocates the space differently. However, the major drawback is that for a partitioned disk the OS must first access a partition table at the beginning of the disk for all accesses to the disk, thus requiring the heads to move to the beginning of the disk, then when it has gotten the partition info move to the designated area on the disk and perform the requested action. This means much more wear-and-tear on the mechanics of the disk, slower speeds and more overhead for the OS, all reducing efficiency.
Rule 2: Avoid using USB drives, since they are the slowest on the market. Do not be tricked by the alleged bandwidth of USB 2.0 advertisements, because is just is not true and remember that the alleged bandwidth is shared by all USB devices, so if you have a USB mouse, keyboard, printer, card reader or whatever, they all share the bandwidth. Stick to SCSI or SATA disks or e-SATA. If needed, you can use Firewire-800 or even Firewire-400 disks, but they are really more suited for backups than for editing.
Rule 3: Use at least 3 different physical disks on an editing machine, one for OS/programs, one for media and one for pagefile/scratch/renders. Even on a notebook with one internal drive it is easy to accomplish this by using a dual e-SATA to Express card connector. That gives you an additional two e-SATA connections for external disks.
Rule 4: Spread disk access across as many disks as you have. If you have OS & programs on disk C:, set your pagefile on another disk. Also set your pagefile to a fixed size, preferably somewhere around 1.5 times your physical memory.
Rule 5: Turn off index search and compression. Both will cause severe performance hits if you leave them on.
Rule 6: If the fill rate on any of your SATA disks goes over 60-70% it is time to get a larger or an additional disk.
Rule 7: Perform regular defrags on all of your disks. For instance, you can schedule this daily during your lunch break.
Rule 8: Keep your disks cool by using adequate airflow by means of additional fans if needed. You can use SMART to monitor disk temperatures, which should be under 35 degrees C at all times and normally hover around 20-24 C, at least in a properly cooled system.
Rule 9: If people want raid, the cheapest way is to use the on-board IHCR or Marvell chip, but it places a relatively high burden on the CPU. The best way is a hardware controller card, preferably based on the IOP348 chip. Areca ARC and ADAPTEC come to mind. 3Ware uses it's own chipset and though not bad, they are not in the same league as the other two. Promise and the like in the budget range are no good and a complete waste of money. Expect to spend around $ 800 plus for a good controller with 12 connectors internally and 4 e-SATA connectors. Important to consider in a purchasing decision is whether the on-board cache memory can be expanded from the regular 256/512 MB to 2 or even 4 GB. Be aware that 2 GB cache can be relatively cheap, but the 4 GB version extremely costly ($ 30 versus $ 300). For safety reasons it is advisable to include a battery backup module (BBM).
Rule 10: If you can easily replace the data in case of disk failure (like rendered files), go ahead and use raid0, but if you want any protection against data loss, use raid 3/5/6/10/30/50. For further protection you can use hot spares, diminishing downtime and performance degradation.
In general when you get a new disk, pay close attention to any rattling noise, do perform regular disk checks, and in case of doubt about reliability, exchange the disk under guarantee. Often a new disk will fail in the first three months. If they survive that period, most of the disks will survive for the next couple of years. If you use a lot of internal disks like I do (17), set staggered spin-up to around 1 second to lessen the burden on the PSU and improve stability.
Hope this helps to answer some basic questions. If not, let me know. Further enhancements and suggestions are welcome
==============================================================================
For AMD setups, disregard the mentions of sockets and the like but the general recommendations still hold.
When you need a new PC for editing purposes, you basically have three choices:
1. Buy an off the shelf system from companies like HP or Dell.
2. Buy a custom built PC from a specialist company, like http://www.guygraphics.com/
3. Build it yourself.
Solution 1 can offer good prices if you stick to their standard configurations and it is easy. But remember that these companies make their profit not on the base system, but on all the options they offer. If you follow their recommendations and upgrade memory, hard disks, or choose a better video card or a faster processor, they steal you blind.
I have nothing against HP or Dell, I have bought systems from them, but usually that was because of a great offer with all the features I needed at the time and applied to notebooks, desktops and servers.
Solution 2 is usually costly, but you get what you pay for. You get the expertise of the seller/builder in selecting the right components, he builds it, installs the software and tests it before delivery. The downside is that often these specialists have their own favorite hardware, like Matrox or Canopus and try to get that into the deal, which increases the price.
Solution 3 is usually the most cost effective and the most flexible, but the largest drawback is that you need to choose all the right components, to be aware of potential incompatibilities and build it yourself. Many see that as a major stumbling block, but really it is not difficult. Another drawback is support. You have to do it yourself.
The first steps to take are twofold:
1. What material do you want to edit and how do you want to deliver the results?
To put it bluntly, if you want to edit material, recorded with a mobile phone, a digital still camera, recorded off the internet from YouTube or similar, recorded from TV, grabbed from the screen, encoded with any unsuitable codec like DivX, XVid, or the like, or ripped from DVD, and that is your major purpose, no need to read this further, just use a consumer application like Windows Movie Maker or Magix for your editing.
This guide is for people who use a VIDEO camera and want to edit that.
So for people with video cameras, what is the main format you use? DV, HDV, DVCPROHD, AVCHD, XDCAMHD, other?
Do you deliver for the web, on BR or DVD or all of those?
2. What is your budget?
Once you have answered these two basic questions for yourself can you start the selection process.
It will require you to read quite a lot about PC's. Good general sources of information are:
http://www.tomshardware.com and http://anandtech.com
As a general rule of thumb you can say that the minimum requirements in terms of CPU, despite what Adobe mentions as minimum requirements, are:
1. For DV: Core 2 Duo
2. For AVCHD: i7 with HT or dual Xeon's 55xx
3. For other HD formats: Core 2 Quad
It generally does not pay to get the fastest CPU, unless you have an unlimited budget. Their price/performance is usually not the best and you will find a step down gives you nearly the same performance at a much lower price. And there is always overclocking, but I'll come back to that later. To give an example, the Core 2 Extreme QX6850 is currently more than 4 times as expensive as the Core 2 Quad Q9550, but does not deliver any noteworthy performance improvement. And both are quad cores.
To help you narrow down your choices, it is worthwhile to have a look at these charts:
http://www.tomshardware.com/charts/desptop-cpu-charts-q3-2008/Cinema-4D-Release- 10,835.html
Likely a new version for Q1-2009 will come out shortly.
In deciding on your shortlist, keep in mind that for video editing FSB speed and cache size are very important. First look at FSB speed (the higher the better, so if you have the choice between 1066 or 1333 FSB, always choose the higher one if it fits your budget). Next narrow down your choices by selecting the CPU with the largest cache. 6 MB L3 cache is better than 3 MB.
Let's assume that after studying all these sites and reading a lot about CPU's, you have made a shortlist of possible candidates, that fit the minimum requirements indicated above, you have to identify what socket the CPU uses. Is it a 775 pin socket (Core2), a 1366 pin (i7 or Xeon 55xx) or a 771 Xeon 54xx or lower (old generation) socket. This will largely determine your choice of motherboard and memory type you need and as a consequence the case and cooling you need.
In general the chipset on a 775 mobo uses DDR2, dual channel memory, which is widely available and relatively cheap. On a 771 mobo the memory used is FBDIMM (fully buffered DDR2) with ECC (error correction) which is much harder to get and significantly more expensive. On a 1366 mobo the memory is triple channel DDR3 which is faster than DDR2 but also more expensive. For Xeon 55xx based boards memory used is FBDIMM's triple channel with ECC, which is hard to find and costly.
The main difference between DDR2 and DDR3 is that dual channel requires two populated memory banks for dual channel operation, whereas triple channel DDR3 requires three banks populated. That is the reason that mobo's with DDR2 usually come with 4 or 8 GB RAM and DDR3 mobo's with 6 or 12 GB RAM. DDR3 is faster (at the same specs) than DDR2. To complicate matters further, most 775 mobo's offer 4 memory slots, 1366 mobo's usually offer 6 memory slots and 1366 dual socket Xeon boards usually offer 12 memory slots.
I see you are losing interest, this is getting way too complicated. Well, I'm sorry but if you want to make an informed decision on what your next system should be, you need to understand these basics or buy a Dell or HP or even Alienware (a Dell subsidiary). And I continue to bore you with these technicalities in order to help you make a good purchasing decision.
When selecting a mobo for the CPU you have selected, read tests on TomsHardware or AnandTech to help you find the good performers that have the right set of features for your job. Good brands are ASUS, Abit, Gigabyte and MSI for single socket use, for dual socket the best one to check out is SuperMicro or possibly Tyan.
Pay attention to the features a board offers, like dual NIC's (network interface controller), dual firewire, number of SATA ports, chipset used for the SATA controller, IHCR and/or Marvell raid capability, on board sound, etcetera. Pay special attention to the board layout, where the PCI-e slots are located in relation to PCI slots. I have once built a machine where I knew I had to use a PCI firewire board and due to the location of the PCI-e slot and the size of the video card (dual slot size) the PCI slot was no longer accessible. It caused me quite some headaches to find a PCI-x firewire replacement board, because I had forgotten to have a close look at the mobo layout. Just a warning, so you don't fall into the same trap I did.
Ok, we have now decided on the CPU and the mobo. Let's have a look at memory.
General rule: Get as much as you can and don't spend it on higher clock capable versions! You will gain more from slower memory in large quantities, than from faster but less memory, even with 32 bit apps like CS4. One of the side effects of more memory is less use of a pagefile, which is far slower than RAM, so even if the application can not access more than 4 GB, your pagefile use will be much lower with more memory installed.
Memory is offered with various ratings. Often in marketing jargon these are dubbed as PC3-8500 or PC3-10600 or PC3-12800 up to 16000. This is all hype. The price tag increases significantly with higher numbers but the performance gain is negligent, in the order of 1 or 2 %. Your best bet is to get memory that is suitable for the FSB speed you have. If you have a FSB of 1333, use memory for 1333 FSB (10600), if you have a FSB of 1066, get 1066 capable memory (8500), it is a complete waste of money to get 1600 capable memory if your FSB does not support it. What is important however is to get the best timings you can find.
The lower the CAS latency, the better. Also look at tRAS (ROW-ACTIVE-TIME) results. These timing figures may give you better performance than spending money on higher clocked memory. On my system I have 6-6-6-18 timings for memory (even when overclocked by 35% and without increasing the voltage), which gives far better results than 9-9-9-27 timings. BTW, timings are usually measured in CAS, RAS-to-CAS, tRP and tRAS sequence. The lower these numbers, the better it is.
In general get at least 4 GB on a 775 or 6 GB on a 1366 mobo, but you may benefit from doubling these figures if you are multitasking, for instance having PR, AE and EN open for dynamic linking, or changing to PS for text or still manipulation.
Next: Storage. I point you to a previous guide I made which gives you the basics about disk setup:
http://forums.adobe.com/thread/427772
Next cases. I suggest to only look at big towers or server towers, depending on the mobo of your choice. For dual CPU sockets a server tower is almost always a must, decause of the use of e-ATX size mobo's and the requirement for specialized cooling, often using an air duct, which is only available in server cases. SuperMicro is a prime supplier and my personal favorite in terms of build quality, expansion capabilities and reliability. Be aware however that the power supply in those cases are pretty noisy. For single CPU solutions there are many choices, often based on looks. What is much more important however is the expansion room and the airflow in those cases. You don't want to pimp your editing machine with LED illuminated fans, transparent sides and the like. It needs to be functional. Antec, CoolerMaster, Lian Li and ThermalTake are common brands and worth having a look at. Looking at smaller cases with a sexy look will often lead to disappointment in the future, since they often lack the capability to add additional disk drives or burners internally or get so full with equipment, that cooling is going to be a real problem. Do take into consideration that you may need 1 or 2 5.25" slots for burners.
Warning: COOLING is essential for reliability and longevity of your system. We'll get to that in a minute.
If you work long form projects, have a multitude of projects or other situations that may require a large number of disks in use or for backup, it is worth to have a look at cases that offer SAS backplanes and (hot-)swappable disk cages. Often on various sites you may find entries to case modding, where you can find other disk cages that allow you to use four 3.5" disks in the space for two 5.25" slots. In my case I had 6 3.5" slots as is was delivered. I have modded my case to now contain 14 3.5" disks just on the front with room for another disk. To avoid disappointment in the future and a lot of work of rebuilding your PC into a new chassis, plan ahead for the storage requirements you may have in the next years. If you start out with 4
disks now, but expect to use 8 next year, be sure that they fit in, even if it requires different disk cages. Make sure that there is adequate cooling for the disks in the disk cages, preferably with 80 or 120 mm fans in front of the disks and use a replacable dust filter.
By this stage we have found the CPU, mobo, memory, hard disks and case. Time to have a look at video cards.
General: CS4 will not significantly benefit from a high end video card. The marketing hype wants us to believe that the nVidia
Quadro CX will give enormous benefits for encoding H.264, but that is just what it is: "Hype".
For general NLE work you are better served with more CPU power, more memory and more hard disks and possibly a better raid controller with more cache than with a video card that costs you at least $ 1 K extra in comparison to very good cards. Better spend the money where you benefit from it. SLI or CrossFire is a complete waste of money and only applies to gamers. Everybody serious about video editing will NEVER install a game on his machine so forget about those things.
If you make sure that you have at least 512 MB on a decent modern video card, you will be hard pressed to see significant differences in performance. ATI Radeon 4xxx and nVidia GT 2xx series are all well up to the task for editing. If you use GPU intensive plug-ins like Colorista or Magic Bullet you may be wise to choose for the more powerful versions of these cards, since these plug-ins are very demanding when rendering.
These video cards get very hot in practice and especially under load. If your case is very full or you have another card in the next PCI-e slot, reducing airflow to the video card, you may consider exchanging the stock cooler on the video card by a special cooler like the Accelero Twin Turbo from Arctic Cooling to keep temperatures in hand.
Now go to http://extreme.outervision.com/psucalculatorlite.jsp and use the PSU calculator to roughly decide what your power supply needs to deliver in terms of Wattage. I strongly suggest to get the PRO version (it is cheap!) but it saves you from fatal mistakes. A PSU (power supply unit) is one of the most overlooked and neglected components in a PC and very often the cause for all kinds of mysterious faults, hangs, BSOD's, restarts etcetera. Let me tell what nearly happened to me when building a new PC. I had checked the power supply requirements, checked reviews online and found one PSU that appealed to me, based on the reviews. It was a Zalman 1000 W. Great, looks good and in stock at an attractive price. I then got the pro version and rechecked, with the extra info on the various rails. The Zalman did not have enough power on the 5V rails that I needed. So I had to change the PSU, otherwise I would have been in for a lot of strange, unexplainable and foreall unexpected hangs, restarts and the like, apart from the reduced life expectancy of the PSU.
Now, we're finally getting somewhere. Only cooling is left, then all the hardware components have been chosen.
CPU cooling: Again check sites like AnandTech. They regularly perform extensive tests on CPU coolers. Be aware that test results differ widely from site to site, but some of the names to consider are Noctua, Scythe and Thermaltake. It is best to choose a vertical heatsink cooler with 'push-pull' configuration, meaning one fan in front to push the cooling air in to the heatsink and the other fan at the rear to pull out the air. That generally delivers the best cooling performance. These things can be quite heavy so they are not suggested for LAN parties. Install it and leave your PC where it is, otherwise the weight may damage your mobo. When installing the heatsink be very sparing in applying cooling paste (Arctic silver is a good
suggestion).
If you have followed my advise in getting a big tower you have room for additional fans in the case. There may not always be holes to attach screws for mounting, but what also works quite effectively is using heavy duty double sided tape to attach fans to a side, on the PSU (if it is mounted at the bottom of the case). Scythe has some very good fans that give a large airflow at reasonable RPM's and low sound levels.
Once you have built your system you need to decide what OS to use. 32 or 64 bit? The point seems moot now. 64 bit Vista is your best option currently. No driver problems anymore, somewhat decent stability and the use of all your installed memory. Windows 7 is only a RC currently, so I would not advise that on a production machine, but on another machine I would definitely try it. It is as stable as Vista is now, but drivers are still somewhat lacking. XP is out, despite the best stability on a clean and mean system, due to the 32 bit nature.
After installing the OS, first check your device manager. Make sure that all your devices are working and there are no warnings. Then update Windows, drivers and other system utilities. Then check your hardware, using CPU-Z and HWMonitor, check the cooling and voltages. Your disks should be below 35 C at all times. Then tune your Bios. Once you have completed these steps, proceed with installing your software. Start with essential system tools like Process Explorer, Beyond Compare, etc. and then continue with tuning Windows, removing sh*t you never use on an editing machine, like MSN or Games, setting unneeded services to manual, disabling Windows Defender and installing Symantec Endpoint protection if you have it, and only then start installing CS4 and related programs.
When all is well, you may consider to start overclocking. TomsHardware and AnandTech have published several articles on how to do that. If you do it right you will not lose stability and may get significant performance gains. It does require more attention to the temperatures in your case.
When I recently built a new system, my first PassMark (a common benchmark testing program) score was around 3600. After finetuning the system, optimizing Windows and overclocking, I got a PassMark score of 4733.8, which even after a month is still number two in the worldwide ranking.
For my system specs, look below, maybe you can derive some ideas from it for your next configuration:
http://www.millcon.nl/Harm/PCResults.jpg
I hope this has been informative and that you can profit from my remarks.
I'm sorry this was so long and taxed your patience to the extreme.
Further suggestions and enhancements are welcome.
================================================================================
Yes, I'm going to tax your patience again. This is a guide to setup Vista 64 for NLE work, well it actually applies to any kind of work, but NLE machines may profit more than an Office/MSN machine. One caveat: What I suggest here is a lean and mean machine that is mainly dedicated to NLE work.
First: It is always best to start with a clean install and a complete reformat of the disk. That will ensure that your registry is clean and leaves no leftovers from a previous install. Do not partition the drive, format the whole disk as one.
After installation has completed, first select Control Panel and Personalize. Select Change Desktop icons and ensure that at least Computer is selected. You can choose other icons as well if you want to. I have all 5 selected.
Next check Device Manager (right click This Computer, select Properties and then Device Manager) that you have no problems with drivers for any of your hardware. If there are any yellow exclamation symbols, solve these issues first by having Vista search for drivers and if it comes back with the message that no drivers could be found, get the latest 64 bit driver from the internet for this device.
Once Device Manager has no more problems, go to Windows update and install all critical updates. Nothing more at this moment. After installation and rebooting, again check Device Manager for problems. There should be none. Otherwise get on the internet again and reinstall the latest Vista 64 drivers. Next right chick This Computer and select Manage and go to Event Viewer. Open the Windows Logs and click on System. Scroll through the events and check out any errors or warnings you see. Search the Microsoft Technet for solutions. This is the link to the very informative Technet site to help you solve any issues you may have: Microsoft Technet
Next go to Control Panel, select Programs and Features and select turn Windows features on or off. You may not need anymore than these Windows Features and possibly less, for instance if you don't use a network printer. Also this may be a good moment to turn off User Account Control via Control Panel/Security Settings.
Next go to Vista Services and use the instructions and the table shown to modify the services, so only those are started that are needed in your situation. Anything not needed will only increase boot time and will consume resources, placing a higher overhead on the system than needed.
After rebooting, update all your drivers if you have not already done so. For instance, if you have an ATI card, download the latest drivers, but remember you can do without the Catalyst Control Center. Their drivers are typically denoted by y.m (year, month) so currently the latest is version 9.5
Now go to Control Panel, System and select Advanced system settings, select Visual Effects and select Adjust for best performance, apply and then select the Advanced tab, click on Performance settings, select the Advanced tab, Select Adjust for best performance of programs and then change the Virtual memory. Setup your pagefile with a custom size with equal numbers for Initial and Maximum size on another drive than your C disk and set the C drive to No paging file. If you have read my Storage rules for an editing rig guide, you know you need a fixed size of around 1 to 1.5 times installed memory, unless you have lots of RAM, then you can easily go lower.
Reboot and right click on This Computer, select Manage and select Disk Management. Select drive C, right click Properties and make sure that Index this drive for faster searching and Compress this drive to save disk space are both turned off. Click Disk Cleanup and clean what can be deleted. Repeat these steps for all of your drives. Next go to the Tools tab and select Defragment Now and defrag all drives. While you are at the Disk Defragment window, setup a daily defragging schedule, for instance during your lunch break. That will keep your disks optimized.
This will make sure that the space previously occupied by the pagefile on the C drive is reclaimed and that the new pagefile on another drive is not fragmented and at the very beginning of the drive in the fastest location (at least if the disk was newly formatted and not used).
If you haven't done so yet, completely turn off the Sidebar and do not have it autostart.
No application has been installed yet, so it is time to start with some essential utilities.
The first thing I do is turning off Windows Defender and install Symantec Endpoint Protection.
Next I install Ccleaner. A very handy freeware tool to keep your system and the registry clean and to remove or disable registry based auto startup programs.
The next one to install is the Sysinternals Suite and most notably Process Explorer, Process Monitor and Autoruns. Depending on your use, other utilities in the Suite may be nice to install as well. Installation is done by extracting the relevant files to the C:\Windows directory. Run Process Explorer once and in the Options menu select Replace Task Manager.
Other utilities I install (but of course you may have different favorites) are Beyond Compare, HWMonitor, SpeedFan, SnagIt and 1ClickPCFix
You are now ready to install your regular software. After installation, registration and activation of all your software use Ccleaner, Tools to check for unnecessary Startup entries in the registry. Disable or remove them. Next check your registry by scanning for issues and fix selected issues. Defragment all your disks again and make a restore point.
If you want to get rid of the ridiculously large shortcut arrow at this moment, go to this site: Remove Shortcut Arrow and follow Method 1.
Reboot and you are ready to go with a hopefully much faster and efficient Vista machine.
If you encounter difficulties and have problems that want to ask about on the forum, be prepared to include a screenshot from Process Explorer and either HWMonitor or Speedfan and a link to DXDIAG.txt
Thanks for your patience and I hope you have found some tips and tricks to improve performance.In general theory, one now has the Edit button for their posts, until someone/anyone Replies to it. I've had Edit available for weeks, as opposed to the old forum's ~ 30 mins.
That, however, is in theory. I've posted, and immediately seen something that needed editing, only to find NO Replies, yet the Edit button is no longer available, only seconds later. Still, in that same thread, I'd have the Edit button from older posts, to which there had also been no Replies even after several days/weeks. Found one that had to be over a month old, and Edit was still there.
Do not know the why/how of this behavior. At first, I thought that maybe there WAS a Reply, that "ate" my Edit button, but had not Refreshed on my screen. Refresh still showed no Replies, just no Edit either. In those cases, I just Reply and mention the [Edit].
Also, it seems that the buttons get very scrambled at times, and Refresh does not always clear that up. I end up clicking where I "think" the right button should be and hope for the best. Seems that when the buttons do bunch up they can appear at random around the page, often three atop one another, and maybe one way the heck out in left-field.
While I'm on a role, it would be nice to be able to switch between Flattened and Threaded Views on the fly. Each has a use, and having to go to Options and then come back down to the thread is a very slow process. Jive is probably incapable of this, but I can dream.
Hunt -
Coalesce or compress this index? what is the best solution in this case?
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64biI have executed the following query on a specific index that I suspected to be smashed and got the following result
select
keys_per_leaf, count(*) blocks
from (
select sys_op_lbid (154813, 'L', jus.rowid) block_id,
count (*) keys_per_leaf
from xxx_table jus
where jus.id is not null
or jus.dat is not null
group by sys_op_lbid (154813, 'L', jus.rowid)
group by keys_per_leaf
order by keys_per_leaf;
keys_per_leaf blocks
1 80
2 1108
3 2816
4 3444
5 3512
6 2891
7 2579
8 2154
9 1943
10 1287
11 1222
12 1011
13 822
14 711
15 544
16 508
17 414
18 455
19 425
20 417
21 338
22 337
23 327
24 288
25 267
26 295
27 281
28 266
29 249
30 255
31 237
32 259
33 257
34 232
35 211
36 209
37 204
38 216
39 189
40 194
41 187
42 200
43 183
44 167
45 186
46 179
47 179
48 179
49 171
50 164
51 174
52 157
53 181
54 192
55 178
56 162
57 155
58 160
59 153
60 151
61 133
62 177
63 156
64 167
65 162
66 171
67 154
68 162
69 163
70 153
71 189
72 166
73 164
74 142
75 177
76 148
77 161
78 164
79 133
80 158
81 176
82 189
83 347
84 369
85 239
86 239
87 224
88 227
89 214
90 190
91 230
92 229
93 377
94 276
95 196
96 218
97 217
98 227
99 230
100 251
101 266
102 298
103 276
104 288
105 638
106 1134
107 1152
229 1
230 1 This is a 5 columns unique key index on (id number, dat date, id2 number, dat2 date type number).
Furthermore, a space analysis of this index using dbms_space.space_usage gives the following picture
Number of blocks with at least 0 to 25% free space = 0 -------> total bytes = 0
Number of blocks with at least 25-50% free space = 75 -------> total bytes = ,5859375
Number of Blocks with with at least 50 to 75% free space = 0 -------> Total Bytes = 0
number of blocks with at least 75 to 100% free space = 0 -------> total bytes = 0
Number of full blocks with no free space = 99848 -------> total bytes = 780,0625
Total blocks ______________________________
99923
Total size MB______________________________
799,384It seems for me that this index needs to be either coalesced or compressed.
Then, what would be the best option in your opinion?
Thanks in advance
Mohamed Houri
Edited by: Mohamed Houri on 12-janv.-2011 1:18So let me continue my case
I first compressed the index as follows
alter index my_index rebuild compress 2;which immediately presents two new situations
(a) index space
Number of blocks with at least 0 to 25% free space = 0 -------> total bytes = 0
Number of blocks with at least 25-50% free space = 40 -------> total bytes =, 3125
Number of Blocks with at least 50 to 75% free space = 0 -------> total Bytes = 0
Number of blocks with at least 75 to 100% free space = 0 -------> total bytes = 0
Number of full blocks with no free space = 32361 -------> total bytes = 252, 8203125
Total blocks ______________________________
32401
Total size Mb______________________________
259,208meaning that the compress command freed up 67487 leaf blocks and reduced the size of the index from to 799,384 MB to 259,208 MB.
It also shows a relative nice pictue of number of keys per leaf block (when compared to the previous situation)
(b) on the number of key per leaf block
KEYS_PER_LEAF BLOCKS
4 1
6 1
13 1
15 1
25 1
62 1
63 1
88 1
97 1
122 1
123 3
124 6
125 4
126 2
289 4489
290 3887
291 3129
292 2273
293 1528
294 913
295 442
296 152
297 50
298 7
299 1 In a second step, I have coalesced the index as follows
alter index my_index coalesce;which produces the new figure
Number of blocks with at least 0 to 25% free space = 0 -------> total bytes = 0
Number of blocks with at least 25-50% free space = 298 -------> total bytes = 2,328125
Number of Blocks with at least 50 to 75% free space = 0 -------> Total Bytes = 0
Number of blocks with at least 75 to 100% free space = 0 -------> total bytes = 0
Number of full blocks with no free space = 32375 -------> total bytes = 252, 9296875
Total blocks ______________________________
32673
Total size MB______________________________
261,384meaning the the coalesce command has made
(a) 298-40 = 258 new blocks with 25-50% of free space
(b) 32375-32361 = 14 new additional blocks which have been made full
(c) The size of the index increased by 2,176MB (261,384-259,208)
While the number of key per leaf block keeps in the same situation
KEYS_PER_LEAF BLOCKS
4 2
5 3
9 1
10 2
12 1
13 1
19 1
31 1
37 1
61 1
63 1
73 1
85 1
88 1
122 1
123 4
124 4
125 3
126 1
289 4492
290 3887
291 3125
292 2273
293 1525
294 913
295 441
296 152
297 50
298 7
299 1 Could you please through some light on the difference between the compress and the coalesce on the effect they have made on
(a) the number of keys per leaf blocks within my index
(b) the space and size of my index?
Best regards
Mohamed Houri -
Hi I need some help please as above I have just purchased my first mac 27" and as much I love it as a newbie im having some teething troubles, when say Facebook or my company website is displayed it is only displayed in the centre of the screen I know I can zoom in and out but that doesnt look great and dont want to have to that on each page display, how do i fix this please.
Also the toolbar at the top of the page is so small and hard to read is there a way to increase and fix the size
Thanks for your helpFor the browser window, just drag it to the top left of the screen (click and hold on the top bar with the traffic lights to drag), then in the bottom right of the window you'll see a rectangle with diagonal hatching. Click and hold on that and drag the window to the size you want.
Clicking on the green dot at top left will expand the window to fit the screen, clicking it again will shrink it back to where it was (this doesn't work in Finder windows quite the same).
The menu bar size is set in the bowels of the OS, though there may be third-party applications which can alter it.
As it's size is relative to the screen resolution, you could try reducing the resolution in System Preferences > Displays to see if that would suit you better. -
One computer at COMPANY-A is attempting to communicate with two
computers located at COMPANY-B, via an IPsec tunnel between the
two companies.
All communications are via TCP protocol.
All devices present public IP addresses to one another, although they
may have RFC 1918 addresses on other interfaces, and NAT may be in use
on the COMPANY-B side. (NAT is not being used on the COMPANY-A side.)
The players:(Note: first three octets have been changed for security reasons)
COMPANY-A computer 1.2.3.161
COMPANY-A router 1.2.3.8 (also IPsec peer)
COMPANY-A has 1.2.3.0/24 with no subnetting.
COMPANY-B router 4.5.6.228 (also IPsec peer)
COMPANY-B computer #1 4.5.7.94 (this one has no issues)
COMPANY-B computer #2 4.5.7.29 (this one fails)
COMPANY-B has 4.5.6.0/23 subnetted in various ways.
COMPANY-B also has 9.10.11.0/24, but it is not involved in the issue.
What works:
The COMPANY-A computer 1.2.3.161 can communicate via the single IPsec
tunnel to COMPANY-B computer #1 4.5.7.94 without problems.
The "show crypto session detail" command shows Inbound/Outbound packets
flowing in the dec'ed and enc'ed positions.
What doesn't:
When the COMPANY-A computer 1.2.3.161 attempts to communicate
via the single IPsec tunnel with the COMPANY-B computer #2 4.5.7.29,
the COMPANY-A router eventually reports five of these messages:
Oct 9 15:24:54.327: IPSEC(epa_des_crypt): decrypted packet failed SA identity check
Oct 9 15:24:57.327: IPSEC(epa_des_crypt): decrypted packet failed SA identity check
Oct 9 15:25:03.327: IPSEC(epa_des_crypt): decrypted packet failed SA identity check
Oct 9 15:25:15.328: IPSEC(epa_des_crypt): decrypted packet failed SA identity check
Oct 9 15:25:39.329: IPSEC(epa_des_crypt): decrypted packet failed SA identity check
Oct 9 15:26:27.328: IPSEC(epa_des_crypt): decrypted packet failed SA identity check
and the "show crypto session detail" shows inbound packets being dropped.
The COMPANY-A computer that opens the TCP connection never gets past the
SYN_SENT phase of the TCP connection whan trying to communicate with the
COMPANY-B computer #2, and the repeated error messages are the retries of
the SYN packet.
On the COMPANY-A side, this IPsec configuration has been set up on a 3745,
a 3725, and some 76xx routers were tried, all with similar behavior,
with packets from one far-end computer passing fine, and packets from
another far-end computer in the same netblock passing through the same
IPsec tunnel failing with the "failed SA identity" error.
The COMPANY-A computer directs all packets headed to COMPANY-B via the
COMPANY-A router at 1.2.3.8 with this set of route settings:
netstat -r -n
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
4.5.7.0 1.2.3.8 255.255.255.0 UG 0 0 0 eth3
1.2.3.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
10.1.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth3
10.0.0.0 10.1.1.1 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 1.2.3.1 0.0.0.0 UG 0 0 0 eth3
The first route line shown is selected for access to both COMPANY-B computers.
The COMPANY-A router (IPsec tunnel endpoint, 1.2.3.8) has this
configuration:
crypto isakmp policy 10
encr 3des
authentication pre-share
group 2
lifetime 28800
crypto isakmp key XXXXXXXXXXXXXXXXXXXXXXX address 4.5.6.228
crypto ipsec security-association lifetime seconds 86400
crypto ipsec transform-set COMPANY-B01 esp-3des esp-sha-hmac
crypto map COMPANY-BMAP1 10 ipsec-isakmp
description COMPANY-B VPN
set peer 4.5.6.228
set transform-set COMPANY-B01
set pfs group2
match address 190
interface FastEthernet0/0
ip address 1.2.3.8 255.255.255.0
no ip redirects
ip virtual-reassembly
duplex auto
speed auto
no cdp enable
crypto map COMPANY-BMAP1
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 1.2.3.1
ip route 10.0.0.0 255.0.0.0 10.1.1.1
ip route 1.2.3.8.0 255.255.255.0 FastEthernet0/0
access-list 190 permit ip host 1.2.3.161 4.5.7.0 0.0.0.255
access-list 190 permit ip host 1.2.3.161 9.10.11.0 0.0.0.255
bridge 1 protocol ieee
One of the routers tried had this IOS/hardware configuration:
Cisco IOS Software, 3700 Software (C3725-ADVIPSERVICESK9-M), Version 12.4(25c),
RELEASE SOFTWARE (fc2)
isco 3725 (R7000) processor (revision 0.1) with 115712K/15360K bytes of memory.
Processor board ID XXXXXXXXXXXXXXX
R7000 CPU at 240MHz, Implementation 39, Rev 3.3, 256KB L2 Cache
2 FastEthernet interfaces
4 ATM interfaces
DRAM configuration is 64 bits wide with parity disabled.
55K bytes of NVRAM.
31296K bytes of ATA System CompactFlash (Read/Write)
250368K bytes of ATA Slot0 CompactFlash (Read/Write)
Configuration register is 0x2102
#show crypto sess
Crypto session current status
Interface: FastEthernet0/0
Session status: UP-ACTIVE
Peer: 4.5.6.228 port 500
IKE SA: local 1.2.3.8/500 remote 4.5.6.228/500 Active
IPSEC FLOW: permit ip host 1.2.3.161 4.5.7.0/255.255.255.0
Active SAs: 2, origin: crypto map
IPSEC FLOW: permit ip host 1.2.3.161 9.10.11.0/255.255.255.0
Active SAs: 0, origin: crypto map
#show crypto sess det
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, X - IKE Extended Authentication
Interface: FastEthernet0/0
Session status: UP-ACTIVE
Peer: 4.5.6.228 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 4.5.6.228
Desc: (none)
IKE SA: local 1.2.3.8/500 remote 4.5.6.228/500 Active
Capabilities:(none) connid:1 lifetime:06:26:27
IPSEC FLOW: permit ip host 1.2.3.161 4.5.7.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 651 drop 16 life (KB/Sec) 4496182/23178
Outbound: #pkts enc'ed 574 drop 2 life (KB/Sec) 4496279/23178
IPSEC FLOW: permit ip host 1.2.3.161 9.10.11.0/255.255.255.0
Active SAs: 0, origin: crypto map
Inbound: #pkts dec'ed 0 drop 0 life (KB/Sec) 0/0
Outbound: #pkts enc'ed 0 drop 0 life (KB/Sec) 0/0
The COMPANY-B device on their end of the IPsec VPN is a Juniper SSG1000
Version 6.1 (ScreenOS)
We only have a limited view into the Juniper device configuration.
What we were allowed to see was:
COMPANY-B-ROUTER(M)-> sh config | incl COMPANY-A
set address "Untrust" "oss-COMPANY-A-1.2.3.161" 1.2.3.161 255.255.255.255
set ike gateway "COMPANY-A-1-GW" address 1.2.3.8 Main outgoing-interface "ethernet2/1" preshare xxxxxxxxxxxxxxxxxxxxxx proposal "pre-g2-3des-sha"
set vpn "COMPANY-A-1-IKE" gateway "COMPANY-A-1-GW" no-replay tunnel idletime 0 proposal "g2-esp-3des-sha-28800"
set policy id 2539 from "Untrust" to "Trust" "oss-COMPANY-A-1.2.3.161" "9.10.11.0-24" "ANY" tunnel vpn "COMPANY-A-1-IKE" id 0x309a pair-policy 2500
set policy id 2500 from "Trust" to "Untrust" "9.10.11.0-24" "oss-COMPANY-A-1.2.3.161" "ANY" tunnel vpn "COMPANY-A-1-IKE" id 0x309a pair-policy 2539
set policy id 2541 from "Trust" to "Untrust" "4.5.7.0-24" "oss-COMPANY-A-1.2.3.161" "ANY" tunnel vpn "COMPANY-A-1-IKE" id 0x309b pair-policy 2540
set policy id 2540 from "Untrust" to "Trust" "oss-COMPANY-A-1.2.3.161" "4.5.7.0-24" "ANY" tunnel vpn "COMPANY-A-1-IKE" id 0x309b pair-policy 2541
COMPANY-B-ROUTER(M)->
I suspect that this curious issue is due to a configuration setting on the
Juniper device, but neither party has seen this error before. COMPANY-B
operates thousands of IPsec VPNs and they report that this is a new error
for them too. The behavior that allows traffic from one IP address to
work and traffic from another to end up getting this error is also unique.
As only the Cisco side emits any error message at all, this is the only
clue we have as to what is going on, even if this isn't actually an IOS
problem.
What we are looking for is a description of exactly what the Cisco
IOS error message:
IPSEC(epa_des_crypt): decrypted packet failed SA identity check
is complaining about, and if there are any known causes of the behavior
described that occur when running IPsec between Cisco IOS and a Juniper
SSG device. Google reports many other incidents of the same error
message (but not the "I like that IP address but hate this one" behavior),
and not just with a Juniper device on the COMPANY-B end, but for those cases,
not one was found where the solution was described.
It is hoped that with a better explanation of the error message
and any known issues with Juniper configuration settings causing
this error, we can have COMPANY-B make adjustments to their device.
Or, if there is a setting change needed on the COMPANY-A router,
that can also be implemented.
Thanks in advance for your time in reading this, and any ideas.Hello Harish,
It is believed that:
COMPANY-B computer #1 4.5.7.94 (this one has no issues)
COMPANY-B computer #2 4.5.7.29 (this one fails)
both have at least two network interfaces, one with a public IP address
(which we are supposedly conversing with) and one with a RFC 1918 type
address. COMPANY-B is reluctant to disclose details of their network or
servers setup, so this is not 100% certain.
Because of that uncertainty, it occurred to me that perhaps COMPANY-B
computer #2 might be incorrectly routing via the RFC 1918 interface.
In theory, such packets should have been blocked by the access-list on both
COMPANY-A router, and should not have even made it into the IPsec VPN
if the Juniper access settings work as it appears they should. So I turned up
debugging on COMPANY-A router so that I could see the encrypted and
decrypted packet hex dumps.
I then hand-disassembled the decoded ACK packet IP header received just
prior to the "decrypted packet failed SA check" error being emitted and
found the expected source and destination IP addresses (4.5.7.29 and 1.2.3.161),
in the unecapsulated packet. I also found the expected port numbers of the TCP
conversation that was trying to be established in the TCP header. So, it
looks like COMPANY-B computer #2 is emitting the packets out the right
interface.
The IP packet header of the encrypted packet showed the IP addresses of the
two routers at each terminus of the IPsec VPN, but since I don't know what triggers
the "SA check" error message or what it is complaining about, I don't know what
other clues to look for in the packet dumps.
As to your second question, "can you check whether both encapsulation and
decapsulation happening in 'show crypto ipsec sa'", the enc'ed/dec'ed
counters were both going up by the correct quantities. When communicating
with the uncooperative COMPANY-B computer #2, you would also see the
received Drop increment for each packet decrypted. When communicating
with the working COMPANY-B computer #1, the Drop counters would not
increment, and the enc'ed/dec'ed would both increment.
#show crypto sess det
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, X - IKE Extended Authentication
Interface: FastEthernet0/0
Session status: UP-ACTIVE
Peer: 4.5.6.228 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 4.5.6.228
Desc: (none)
IKE SA: local 1.2.3.8/500 remote 4.5.6.228/500 Active
Capabilities:(none) connid:1 lifetime:07:59:54
IPSEC FLOW: permit ip host 1.2.3.161 4.5.7.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 376 drop 5 life (KB/Sec) 4458308/28784
Outbound: #pkts enc'ed 401 drop 3 life (KB/Sec) 4458308/28784
Attempt a TCP communication to COMPANY-B computer #2...
show crypto sess det
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, X - IKE Extended Authentication
Interface: FastEthernet0/0
Session status: UP-ACTIVE
Peer: 4.5.6.228 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 4.5.6.228
Desc: (none)
IKE SA: local 1.2.3.8/500 remote 4.5.6.228/500 Active
Capabilities:(none) connid:1 lifetime:07:59:23
IPSEC FLOW: permit ip host 1.2.3.161 4.5.7.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 376 drop 6 life (KB/Sec) 4458307/28753
Outbound: #pkts enc'ed 402 drop 3 life (KB/Sec) 4458307/28753
Note Inbound "drop" changed from 5 to 6. (I didn't let it sit for all
the retries.)
#show crypto ipsec sa
interface: FastEthernet0/0
Crypto map tag: COMPANY-BMAP1, local addr 1.2.3.8
protected vrf: (none)
local ident (addr/mask/prot/port): (1.2.3.161/255.255.255.255/0/0)
remote ident (addr/mask/prot/port): (4.5.7.0/255.255.255.0/0/0)
current_peer 4.5.6.228 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 402, #pkts encrypt: 402, #pkts digest: 402
#pkts decaps: 376, #pkts decrypt: 376, #pkts verify: 376
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 3, #recv errors 6
local crypto endpt.: 1.2.3.8, remote crypto endpt.: 4.5.6.228
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0xDF2CC59C(3744253340)
inbound esp sas:
spi: 0xD9D2EBBB(3654478779)
transform: esp-3des esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: SW:4, crypto map: COMPANY-BMAP1
sa timing: remaining key lifetime (k/sec): (4458307/28600)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xDF2CC59C(3744253340)
transform: esp-3des esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2003, flow_id: SW:3, crypto map: COMPANY-BMAP1
sa timing: remaining key lifetime (k/sec): (4458307/28600)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
The "send" errors appear to be related to the tunnel reverting to a
DOWN state after periods of inactivity, and you appear to get one
each time the tunnel has to be re-negotiated and returned to
an ACTIVE state. There is no relationship between Send errors
incrementing and working/non-working TCP conversations to the
two COMPANY-B servers.
Thanks for pondering this very odd behavior.
Maybe you are looking for
-
Access/download file from server.
have a problem. When I am trying to save/open a file from server(secure) which uses HTTPS, its displaying error message: Internet Explorer cannot download ...File_name.doc from Server_name. Internet Explorer was not able to open this Internet site. T
-
Replacement for QSIMG, AU015 and XEDT in payroll schema Q000 in ERP 6.0
Hi SAP Gurus, I am involved in SAP HR upgrade from R/3 4.6c to ERP 6.0 for country AU. Now, there are three functions - namely QSIMG, AU015 & XEDT - that have become obsolete in payroll schema Q000 in ERP 6.0. Can anyone please let me know what are t
-
hi all, I am bit new to forms and trying to understand a few things. What is the significance of ifrun60.exe in 6i? what is its replacement in forms 10g? My DOS batch file logonPROD.bat has the below line for PRODUCTION C:\Oracle\DEV6I\BIN\ifrun60.EX
-
How to write ABAP Logic in SAP Query to fetch records from many Tables
Hi Expert, I have one requirement, want to display all BOM (Equipment BOM, Function Location BOM and Meterial BOM) from a particular plant. List of tables as below: EQST: Equipment to BOM Link TPST: Link Between Functional Location and BOM MAST: Mate
-
How to apply for self-developed plug-in signatures licensing about Adobe Reader
Our company is doing something in the field of electronic certification industry, which uses Adobe reader to sign PDF files based on various signature algorithms. While, there is a problem that Adobe reader does not support PDF signature based on the